# global scope

  const INF
  const NAN
  const PI = 3.14159265358979
  const TAU = 6.28318530717959

  enum ClockDirection {
    CLOCKWISE = 0,
    COUNTERCLOCKWISE = 1,
  }

  enum Corner {
    CORNER_TOP_LEFT = 0,
    CORNER_TOP_RIGHT = 1,
    CORNER_BOTTOM_RIGHT = 2,
    CORNER_BOTTOM_LEFT = 3,
  }

  enum Error {
    OK = 0,
    FAILED = 1,
    ERR_UNAVAILABLE = 2,
    ERR_UNCONFIGURED = 3,
    ERR_UNAUTHORIZED = 4,
    ERR_PARAMETER_RANGE_ERROR = 5,
    ERR_OUT_OF_MEMORY = 6,
    ERR_FILE_NOT_FOUND = 7,
    ERR_FILE_BAD_DRIVE = 8,
    ERR_FILE_BAD_PATH = 9,
    ERR_FILE_NO_PERMISSION = 10,
    ERR_FILE_ALREADY_IN_USE = 11,
    ERR_FILE_CANT_OPEN = 12,
    ERR_FILE_CANT_WRITE = 13,
    ERR_FILE_CANT_READ = 14,
    ERR_FILE_UNRECOGNIZED = 15,
    ERR_FILE_CORRUPT = 16,
    ERR_FILE_MISSING_DEPENDENCIES = 17,
    ERR_FILE_EOF = 18,
    ERR_CANT_OPEN = 19,
    ERR_CANT_CREATE = 20,
    ERR_QUERY_FAILED = 21,
    ERR_ALREADY_IN_USE = 22,
    ERR_LOCKED = 23,
    ERR_TIMEOUT = 24,
    ERR_CANT_CONNECT = 25,
    ERR_CANT_RESOLVE = 26,
    ERR_CONNECTION_ERROR = 27,
    ERR_CANT_ACQUIRE_RESOURCE = 28,
    ERR_CANT_FORK = 29,
    ERR_INVALID_DATA = 30,
    ERR_INVALID_PARAMETER = 31,
    ERR_ALREADY_EXISTS = 32,
    ERR_DOES_NOT_EXIST = 33,
    ERR_DATABASE_CANT_READ = 34,
    ERR_DATABASE_CANT_WRITE = 35,
    ERR_COMPILATION_FAILED = 36,
    ERR_METHOD_NOT_FOUND = 37,
    ERR_LINK_FAILED = 38,
    ERR_SCRIPT_FAILED = 39,
    ERR_CYCLIC_LINK = 40,
    ERR_INVALID_DECLARATION = 41,
    ERR_DUPLICATE_SYMBOL = 42,
    ERR_PARSE_ERROR = 43,
    ERR_BUSY = 44,
    ERR_SKIP = 45,
    ERR_HELP = 46,
    ERR_BUG = 47,
    ERR_PRINTER_ON_FIRE = 48,
  }

  enum EulerOrder {
    EULER_ORDER_XYZ = 0,
    EULER_ORDER_XZY = 1,
    EULER_ORDER_YXZ = 2,
    EULER_ORDER_YZX = 3,
    EULER_ORDER_ZXY = 4,
    EULER_ORDER_ZYX = 5,
  }

  enum HorizontalAlignment {
    HORIZONTAL_ALIGNMENT_LEFT = 0,
    HORIZONTAL_ALIGNMENT_CENTER = 1,
    HORIZONTAL_ALIGNMENT_RIGHT = 2,
    HORIZONTAL_ALIGNMENT_FILL = 3,
  }

  enum InlineAlignment {
    INLINE_ALIGNMENT_TOP_TO = 0,
    INLINE_ALIGNMENT_CENTER_TO = 1,
    INLINE_ALIGNMENT_BOTTOM_TO = 2,
    INLINE_ALIGNMENT_BASELINE_TO = 3,
    INLINE_ALIGNMENT_TO_CENTER = 4,
    INLINE_ALIGNMENT_CENTER = 5,
    INLINE_ALIGNMENT_TO_BASELINE = 8,
    INLINE_ALIGNMENT_TO_BOTTOM = 12,
    INLINE_ALIGNMENT_BOTTOM = 14,
  }

  enum JoyAxis {
    JOY_AXIS_INVALID = -1,
    JOY_AXIS_LEFT_X = 0,
    JOY_AXIS_LEFT_Y = 1,
    JOY_AXIS_RIGHT_X = 2,
    JOY_AXIS_RIGHT_Y = 3,
    JOY_AXIS_TRIGGER_LEFT = 4,
    JOY_AXIS_TRIGGER_RIGHT = 5,
    JOY_AXIS_SDL_MAX = 6,
    JOY_AXIS_MAX = 10,
  }

  enum JoyButton {
    JOY_BUTTON_INVALID = -1,
    JOY_BUTTON_A = 0,
    JOY_BUTTON_B = 1,
    JOY_BUTTON_X = 2,
    JOY_BUTTON_Y = 3,
    JOY_BUTTON_BACK = 4,
    JOY_BUTTON_GUIDE = 5,
    JOY_BUTTON_START = 6,
    JOY_BUTTON_LEFT_STICK = 7,
    JOY_BUTTON_RIGHT_STICK = 8,
    JOY_BUTTON_LEFT_SHOULDER = 9,
    JOY_BUTTON_RIGHT_SHOULDER = 10,
    JOY_BUTTON_DPAD_UP = 11,
    JOY_BUTTON_DPAD_DOWN = 12,
    JOY_BUTTON_DPAD_LEFT = 13,
    JOY_BUTTON_DPAD_RIGHT = 14,
    JOY_BUTTON_MISC1 = 15,
    JOY_BUTTON_PADDLE1 = 16,
    JOY_BUTTON_PADDLE2 = 17,
    JOY_BUTTON_PADDLE3 = 18,
    JOY_BUTTON_PADDLE4 = 19,
    JOY_BUTTON_TOUCHPAD = 20,
    JOY_BUTTON_SDL_MAX = 21,
    JOY_BUTTON_MAX = 128,
  }

  enum Key {
    KEY_NONE = 0,
    KEY_SPACE = 32,
    KEY_EXCLAM = 33,
    KEY_QUOTEDBL = 34,
    KEY_NUMBERSIGN = 35,
    KEY_DOLLAR = 36,
    KEY_PERCENT = 37,
    KEY_AMPERSAND = 38,
    KEY_APOSTROPHE = 39,
    KEY_PARENLEFT = 40,
    KEY_PARENRIGHT = 41,
    KEY_ASTERISK = 42,
    KEY_PLUS = 43,
    KEY_COMMA = 44,
    KEY_MINUS = 45,
    KEY_PERIOD = 46,
    KEY_SLASH = 47,
    KEY_0 = 48,
    KEY_1 = 49,
    KEY_2 = 50,
    KEY_3 = 51,
    KEY_4 = 52,
    KEY_5 = 53,
    KEY_6 = 54,
    KEY_7 = 55,
    KEY_8 = 56,
    KEY_9 = 57,
    KEY_COLON = 58,
    KEY_SEMICOLON = 59,
    KEY_LESS = 60,
    KEY_EQUAL = 61,
    KEY_GREATER = 62,
    KEY_QUESTION = 63,
    KEY_AT = 64,
    KEY_A = 65,
    KEY_B = 66,
    KEY_C = 67,
    KEY_D = 68,
    KEY_E = 69,
    KEY_F = 70,
    KEY_G = 71,
    KEY_H = 72,
    KEY_I = 73,
    KEY_J = 74,
    KEY_K = 75,
    KEY_L = 76,
    KEY_M = 77,
    KEY_N = 78,
    KEY_O = 79,
    KEY_P = 80,
    KEY_Q = 81,
    KEY_R = 82,
    KEY_S = 83,
    KEY_T = 84,
    KEY_U = 85,
    KEY_V = 86,
    KEY_W = 87,
    KEY_X = 88,
    KEY_Y = 89,
    KEY_Z = 90,
    KEY_BRACKETLEFT = 91,
    KEY_BACKSLASH = 92,
    KEY_BRACKETRIGHT = 93,
    KEY_ASCIICIRCUM = 94,
    KEY_UNDERSCORE = 95,
    KEY_QUOTELEFT = 96,
    KEY_BRACELEFT = 123,
    KEY_BAR = 124,
    KEY_BRACERIGHT = 125,
    KEY_ASCIITILDE = 126,
    KEY_YEN = 165,
    KEY_SECTION = 167,
    KEY_SPECIAL = 4194304,
    KEY_ESCAPE = 4194305,
    KEY_TAB = 4194306,
    KEY_BACKTAB = 4194307,
    KEY_BACKSPACE = 4194308,
    KEY_ENTER = 4194309,
    KEY_KP_ENTER = 4194310,
    KEY_INSERT = 4194311,
    KEY_DELETE = 4194312,
    KEY_PAUSE = 4194313,
    KEY_PRINT = 4194314,
    KEY_SYSREQ = 4194315,
    KEY_CLEAR = 4194316,
    KEY_HOME = 4194317,
    KEY_END = 4194318,
    KEY_LEFT = 4194319,
    KEY_UP = 4194320,
    KEY_RIGHT = 4194321,
    KEY_DOWN = 4194322,
    KEY_PAGEUP = 4194323,
    KEY_PAGEDOWN = 4194324,
    KEY_SHIFT = 4194325,
    KEY_CTRL = 4194326,
    KEY_META = 4194327,
    KEY_ALT = 4194328,
    KEY_CAPSLOCK = 4194329,
    KEY_NUMLOCK = 4194330,
    KEY_SCROLLLOCK = 4194331,
    KEY_F1 = 4194332,
    KEY_F2 = 4194333,
    KEY_F3 = 4194334,
    KEY_F4 = 4194335,
    KEY_F5 = 4194336,
    KEY_F6 = 4194337,
    KEY_F7 = 4194338,
    KEY_F8 = 4194339,
    KEY_F9 = 4194340,
    KEY_F10 = 4194341,
    KEY_F11 = 4194342,
    KEY_F12 = 4194343,
    KEY_F13 = 4194344,
    KEY_F14 = 4194345,
    KEY_F15 = 4194346,
    KEY_F16 = 4194347,
    KEY_F17 = 4194348,
    KEY_F18 = 4194349,
    KEY_F19 = 4194350,
    KEY_F20 = 4194351,
    KEY_F21 = 4194352,
    KEY_F22 = 4194353,
    KEY_F23 = 4194354,
    KEY_F24 = 4194355,
    KEY_F25 = 4194356,
    KEY_F26 = 4194357,
    KEY_F27 = 4194358,
    KEY_F28 = 4194359,
    KEY_F29 = 4194360,
    KEY_F30 = 4194361,
    KEY_F31 = 4194362,
    KEY_F32 = 4194363,
    KEY_F33 = 4194364,
    KEY_F34 = 4194365,
    KEY_F35 = 4194366,
    KEY_MENU = 4194370,
    KEY_HYPER = 4194371,
    KEY_HELP = 4194373,
    KEY_BACK = 4194376,
    KEY_FORWARD = 4194377,
    KEY_STOP = 4194378,
    KEY_REFRESH = 4194379,
    KEY_VOLUMEDOWN = 4194380,
    KEY_VOLUMEMUTE = 4194381,
    KEY_VOLUMEUP = 4194382,
    KEY_MEDIAPLAY = 4194388,
    KEY_MEDIASTOP = 4194389,
    KEY_MEDIAPREVIOUS = 4194390,
    KEY_MEDIANEXT = 4194391,
    KEY_MEDIARECORD = 4194392,
    KEY_HOMEPAGE = 4194393,
    KEY_FAVORITES = 4194394,
    KEY_SEARCH = 4194395,
    KEY_STANDBY = 4194396,
    KEY_OPENURL = 4194397,
    KEY_LAUNCHMAIL = 4194398,
    KEY_LAUNCHMEDIA = 4194399,
    KEY_LAUNCH0 = 4194400,
    KEY_LAUNCH1 = 4194401,
    KEY_LAUNCH2 = 4194402,
    KEY_LAUNCH3 = 4194403,
    KEY_LAUNCH4 = 4194404,
    KEY_LAUNCH5 = 4194405,
    KEY_LAUNCH6 = 4194406,
    KEY_LAUNCH7 = 4194407,
    KEY_LAUNCH8 = 4194408,
    KEY_LAUNCH9 = 4194409,
    KEY_LAUNCHA = 4194410,
    KEY_LAUNCHB = 4194411,
    KEY_LAUNCHC = 4194412,
    KEY_LAUNCHD = 4194413,
    KEY_LAUNCHE = 4194414,
    KEY_LAUNCHF = 4194415,
    KEY_GLOBE = 4194416,
    KEY_KEYBOARD = 4194417,
    KEY_JIS_EISU = 4194418,
    KEY_JIS_KANA = 4194419,
    KEY_KP_MULTIPLY = 4194433,
    KEY_KP_DIVIDE = 4194434,
    KEY_KP_SUBTRACT = 4194435,
    KEY_KP_PERIOD = 4194436,
    KEY_KP_ADD = 4194437,
    KEY_KP_0 = 4194438,
    KEY_KP_1 = 4194439,
    KEY_KP_2 = 4194440,
    KEY_KP_3 = 4194441,
    KEY_KP_4 = 4194442,
    KEY_KP_5 = 4194443,
    KEY_KP_6 = 4194444,
    KEY_KP_7 = 4194445,
    KEY_KP_8 = 4194446,
    KEY_KP_9 = 4194447,
    KEY_UNKNOWN = 8388607,
  }

  enum KeyModifierMask {
    KEY_CODE_MASK = 8388607,
    KEY_MASK_CMD_OR_CTRL = 16777216,
    KEY_MASK_SHIFT = 33554432,
    KEY_MASK_ALT = 67108864,
    KEY_MASK_META = 134217728,
    KEY_MASK_CTRL = 268435456,
    KEY_MODIFIER_MASK = 532676608,
    KEY_MASK_KPAD = 536870912,
    KEY_MASK_GROUP_SWITCH = 1073741824,
  }

  enum MethodFlags {
    METHOD_FLAG_NORMAL = 1,
    METHOD_FLAG_EDITOR = 2,
    METHOD_FLAG_CONST = 4,
    METHOD_FLAG_VIRTUAL = 8,
    METHOD_FLAG_VARARG = 16,
    METHOD_FLAG_STATIC = 32,
    METHOD_FLAG_OBJECT_CORE = 64,
  }

  enum MIDIMessage {
    MIDI_MESSAGE_NONE = 0,
    MIDI_MESSAGE_NOTE_OFF = 8,
    MIDI_MESSAGE_NOTE_ON = 9,
    MIDI_MESSAGE_AFTERTOUCH = 10,
    MIDI_MESSAGE_CONTROL_CHANGE = 11,
    MIDI_MESSAGE_PROGRAM_CHANGE = 12,
    MIDI_MESSAGE_CHANNEL_PRESSURE = 13,
    MIDI_MESSAGE_PITCH_BEND = 14,
    MIDI_MESSAGE_SYSTEM_EXCLUSIVE = 240,
    MIDI_MESSAGE_QUARTER_FRAME = 241,
    MIDI_MESSAGE_SONG_POSITION_POINTER = 242,
    MIDI_MESSAGE_SONG_SELECT = 243,
    MIDI_MESSAGE_TUNE_REQUEST = 246,
    MIDI_MESSAGE_TIMING_CLOCK = 248,
    MIDI_MESSAGE_START = 250,
    MIDI_MESSAGE_CONTINUE = 251,
    MIDI_MESSAGE_STOP = 252,
    MIDI_MESSAGE_ACTIVE_SENSING = 254,
    MIDI_MESSAGE_SYSTEM_RESET = 255,
  }

  enum MouseButton {
    MOUSE_BUTTON_NONE = 0,
    MOUSE_BUTTON_LEFT = 1,
    MOUSE_BUTTON_RIGHT = 2,
    MOUSE_BUTTON_MIDDLE = 3,
    MOUSE_BUTTON_WHEEL_UP = 4,
    MOUSE_BUTTON_WHEEL_DOWN = 5,
    MOUSE_BUTTON_WHEEL_LEFT = 6,
    MOUSE_BUTTON_WHEEL_RIGHT = 7,
    MOUSE_BUTTON_XBUTTON1 = 8,
    MOUSE_BUTTON_XBUTTON2 = 9,
  }

  enum MouseButtonMask {
    MOUSE_BUTTON_MASK_LEFT = 1,
    MOUSE_BUTTON_MASK_RIGHT = 2,
    MOUSE_BUTTON_MASK_MIDDLE = 4,
    MOUSE_BUTTON_MASK_MB_XBUTTON1 = 128,
    MOUSE_BUTTON_MASK_MB_XBUTTON2 = 256,
  }

  enum Operator {
    OP_EQUAL = 0,
    OP_NOT_EQUAL = 1,
    OP_LESS = 2,
    OP_LESS_EQUAL = 3,
    OP_GREATER = 4,
    OP_GREATER_EQUAL = 5,
    OP_ADD = 6,
    OP_SUBTRACT = 7,
    OP_MULTIPLY = 8,
    OP_DIVIDE = 9,
    OP_NEGATE = 10,
    OP_POSITIVE = 11,
    OP_MODULE = 12,
    OP_POWER = 13,
    OP_SHIFT_LEFT = 14,
    OP_SHIFT_RIGHT = 15,
    OP_BIT_AND = 16,
    OP_BIT_OR = 17,
    OP_BIT_XOR = 18,
    OP_BIT_NEGATE = 19,
    OP_AND = 20,
    OP_OR = 21,
    OP_XOR = 22,
    OP_NOT = 23,
    OP_IN = 24,
    OP_MAX = 25,
  }

  enum Orientation {
    HORIZONTAL = 0,
    VERTICAL = 1,
  }

  enum PropertyHint {
    PROPERTY_HINT_NONE = 0,
    PROPERTY_HINT_RANGE = 1,
    PROPERTY_HINT_ENUM = 2,
    PROPERTY_HINT_ENUM_SUGGESTION = 3,
    PROPERTY_HINT_EXP_EASING = 4,
    PROPERTY_HINT_LINK = 5,
    PROPERTY_HINT_FLAGS = 6,
    PROPERTY_HINT_LAYERS_2D_RENDER = 7,
    PROPERTY_HINT_LAYERS_2D_PHYSICS = 8,
    PROPERTY_HINT_LAYERS_2D_NAVIGATION = 9,
    PROPERTY_HINT_LAYERS_3D_RENDER = 10,
    PROPERTY_HINT_LAYERS_3D_PHYSICS = 11,
    PROPERTY_HINT_LAYERS_3D_NAVIGATION = 12,
    PROPERTY_HINT_FILE = 13,
    PROPERTY_HINT_DIR = 14,
    PROPERTY_HINT_GLOBAL_FILE = 15,
    PROPERTY_HINT_GLOBAL_DIR = 16,
    PROPERTY_HINT_RESOURCE_TYPE = 17,
    PROPERTY_HINT_MULTILINE_TEXT = 18,
    PROPERTY_HINT_EXPRESSION = 19,
    PROPERTY_HINT_PLACEHOLDER_TEXT = 20,
    PROPERTY_HINT_COLOR_NO_ALPHA = 21,
    PROPERTY_HINT_OBJECT_ID = 22,
    PROPERTY_HINT_TYPE_STRING = 23,
    PROPERTY_HINT_NODE_PATH_TO_EDITED_NODE = 24,
    PROPERTY_HINT_OBJECT_TOO_BIG = 25,
    PROPERTY_HINT_NODE_PATH_VALID_TYPES = 26,
    PROPERTY_HINT_SAVE_FILE = 27,
    PROPERTY_HINT_GLOBAL_SAVE_FILE = 28,
    PROPERTY_HINT_INT_IS_OBJECTID = 29,
    PROPERTY_HINT_INT_IS_POINTER = 30,
    PROPERTY_HINT_ARRAY_TYPE = 31,
    PROPERTY_HINT_LOCALE_ID = 32,
    PROPERTY_HINT_LOCALIZABLE_STRING = 33,
    PROPERTY_HINT_NODE_TYPE = 34,
    PROPERTY_HINT_HIDE_QUATERNION_EDIT = 35,
    PROPERTY_HINT_PASSWORD = 36,
    PROPERTY_HINT_LAYERS_AVOIDANCE = 37,
    PROPERTY_HINT_MAX = 38,
  }

  enum PropertyUsageFlags {
    PROPERTY_USAGE_NONE = 0,
    PROPERTY_USAGE_STORAGE = 2,
    PROPERTY_USAGE_EDITOR = 4,
    PROPERTY_USAGE_DEFAULT = 6,
    PROPERTY_USAGE_INTERNAL = 8,
    PROPERTY_USAGE_CHECKABLE = 16,
    PROPERTY_USAGE_CHECKED = 32,
    PROPERTY_USAGE_GROUP = 64,
    PROPERTY_USAGE_CATEGORY = 128,
    PROPERTY_USAGE_SUBGROUP = 256,
    PROPERTY_USAGE_CLASS_IS_BITFIELD = 512,
    PROPERTY_USAGE_NO_INSTANCE_STATE = 1024,
    PROPERTY_USAGE_RESTART_IF_CHANGED = 2048,
    PROPERTY_USAGE_SCRIPT_VARIABLE = 4096,
    PROPERTY_USAGE_STORE_IF_NULL = 8192,
    PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED = 16384,
    PROPERTY_USAGE_SCRIPT_DEFAULT_VALUE = 32768,
    PROPERTY_USAGE_CLASS_IS_ENUM = 65536,
    PROPERTY_USAGE_NIL_IS_VARIANT = 131072,
    PROPERTY_USAGE_ARRAY = 262144,
    PROPERTY_USAGE_ALWAYS_DUPLICATE = 524288,
    PROPERTY_USAGE_NEVER_DUPLICATE = 1048576,
    PROPERTY_USAGE_HIGH_END_GFX = 2097152,
    PROPERTY_USAGE_NODE_PATH_FROM_SCENE_ROOT = 4194304,
    PROPERTY_USAGE_RESOURCE_NOT_PERSISTENT = 8388608,
    PROPERTY_USAGE_KEYING_INCREMENTS = 16777216,
    PROPERTY_USAGE_DEFERRED_SET_RESOURCE = 33554432,
    PROPERTY_USAGE_EDITOR_INSTANTIATE_OBJECT = 67108864,
    PROPERTY_USAGE_EDITOR_BASIC_SETTING = 134217728,
    PROPERTY_USAGE_READ_ONLY = 268435456,
    PROPERTY_USAGE_SECRET = 536870912,
  }

  enum Side {
    SIDE_LEFT = 0,
    SIDE_TOP = 1,
    SIDE_RIGHT = 2,
    SIDE_BOTTOM = 3,
  }

  enum Type {
    TYPE_NIL = 0,
    TYPE_BOOL = 1,
    TYPE_INT = 2,
    TYPE_FLOAT = 3,
    TYPE_STRING = 4,
    TYPE_VECTOR2 = 5,
    TYPE_VECTOR2I = 6,
    TYPE_RECT2 = 7,
    TYPE_RECT2I = 8,
    TYPE_VECTOR3 = 9,
    TYPE_VECTOR3I = 10,
    TYPE_TRANSFORM2D = 11,
    TYPE_VECTOR4 = 12,
    TYPE_VECTOR4I = 13,
    TYPE_PLANE = 14,
    TYPE_QUATERNION = 15,
    TYPE_AABB = 16,
    TYPE_BASIS = 17,
    TYPE_TRANSFORM3D = 18,
    TYPE_PROJECTION = 19,
    TYPE_COLOR = 20,
    TYPE_STRING_NAME = 21,
    TYPE_NODE_PATH = 22,
    TYPE_RID = 23,
    TYPE_OBJECT = 24,
    TYPE_CALLABLE = 25,
    TYPE_SIGNAL = 26,
    TYPE_DICTIONARY = 27,
    TYPE_ARRAY = 28,
    TYPE_PACKED_BYTE_ARRAY = 29,
    TYPE_PACKED_INT32_ARRAY = 30,
    TYPE_PACKED_INT64_ARRAY = 31,
    TYPE_PACKED_FLOAT32_ARRAY = 32,
    TYPE_PACKED_FLOAT64_ARRAY = 33,
    TYPE_PACKED_STRING_ARRAY = 34,
    TYPE_PACKED_VECTOR2_ARRAY = 35,
    TYPE_PACKED_VECTOR3_ARRAY = 36,
    TYPE_PACKED_COLOR_ARRAY = 37,
    TYPE_MAX = 38,
  }

  enum VerticalAlignment {
    VERTICAL_ALIGNMENT_TOP = 0,
    VERTICAL_ALIGNMENT_CENTER = 1,
    VERTICAL_ALIGNMENT_BOTTOM = 2,
    VERTICAL_ALIGNMENT_FILL = 3,
  }

  var AudioServer: AudioServer
  var CameraServer: CameraServer
  var ClassDB: ClassDB
  var DisplayServer: DisplayServer
  var Engine: Engine
  var EngineDebugger: EngineDebugger
  var GDExtensionManager: GDExtensionManager
  var Geometry2D: Geometry2D
  var Geometry3D: Geometry3D
  var Input: Input
  var InputMap: InputMap
  var IP: IP
  var Marshalls: Marshalls
  var NavigationMeshGenerator: NavigationMeshGenerator
  var NavigationServer2D: NavigationServer2D
  var NavigationServer3D: NavigationServer3D
  var OS: OS
  var Performance: Performance
  var PhysicsServer2D: PhysicsServer2D
  var PhysicsServer2DManager: PhysicsServer2DManager
  var PhysicsServer3D: PhysicsServer3D
  var PhysicsServer3DManager: PhysicsServer3DManager
  var ProjectSettings: ProjectSettings
  var RenderingServer: RenderingServer
  var ResourceLoader: ResourceLoader
  var ResourceSaver: ResourceSaver
  var ResourceUID: ResourceUID
  var TextServerManager: TextServerManager
  var ThemeDB: ThemeDB
  var Time: Time
  var TranslationServer: TranslationServer
  var WorkerThreadPool: WorkerThreadPool
  var XRServer: XRServer

  func abs(x: Variant) -> Variant
  func absf(x: float) -> float
  func absi(x: int) -> int
  func acos(x: float) -> float
  func acosh(x: float) -> float
  func angle_difference(from: float, to: float) -> float
  func asin(x: float) -> float
  func asinh(x: float) -> float
  func assert(condition: bool, message: String = "")
  func atan(x: float) -> float
  func atan2(y: float, x: float) -> float
  func atanh(x: float) -> float
  func bezier_derivative(start: float, control_1: float, control_2: float, end: float, t: float) -> float
  func bezier_interpolate(start: float, control_1: float, control_2: float, end: float, t: float) -> float
  func bytes_to_var(bytes: PackedByteArray) -> Variant
  func bytes_to_var_with_objects(bytes: PackedByteArray) -> Variant
  func ceil(x: Variant) -> Variant
  func ceilf(x: float) -> float
  func ceili(x: float) -> int
  func char(char: int) -> String
  func clamp(value: Variant, min: Variant, max: Variant) -> Variant
  func clampf(value: float, min: float, max: float) -> float
  func clampi(value: int, min: int, max: int) -> int
  func convert(what: Variant, type: enum Type) -> Variant
  func cos(angle_rad: float) -> float
  func cosh(x: float) -> float
  func cubic_interpolate(from: float, to: float, pre: float, post: float, weight: float) -> float
  func cubic_interpolate_angle(from: float, to: float, pre: float, post: float, weight: float) -> float
  func cubic_interpolate_angle_in_time(from: float, to: float, pre: float, post: float, weight: float, to_t: float, pre_t: float, post_t: float) -> float
  func cubic_interpolate_in_time(from: float, to: float, pre: float, post: float, weight: float, to_t: float, pre_t: float, post_t: float) -> float
  func db_to_linear(db: float) -> float
  func deg_to_rad(deg: float) -> float
  func dict_to_inst(dictionary: Dictionary) -> Object
  func ease(x: float, curve: float) -> float
  func error_string(error: enum Error) -> String
  func exp(x: float) -> float
  func floor(x: Variant) -> Variant
  func floorf(x: float) -> float
  func floori(x: float) -> int
  func fmod(x: float, y: float) -> float
  func fposmod(x: float, y: float) -> float
  func get_stack() -> Array
  func hash(variable: Variant) -> int
  func inst_to_dict(instance: Object) -> Dictionary
  func instance_from_id(instance_id: int) -> Object
  func inverse_lerp(from: float, to: float, weight: float) -> float
  func is_equal_approx(a: float, b: float) -> bool
  func is_finite(x: float) -> bool
  func is_inf(x: float) -> bool
  func is_instance_id_valid(id: int) -> bool
  func is_instance_of(value: Variant, type: Variant) -> bool
  func is_instance_valid(instance: Variant) -> bool
  func is_nan(x: float) -> bool
  func is_same(a: Variant, b: Variant) -> bool
  func is_zero_approx(x: float) -> bool
  func len(var: Variant) -> int
  func lerp(from: Variant, to: Variant, weight: Variant) -> Variant
  func lerp_angle(from: float, to: float, weight: float) -> float
  func lerpf(from: float, to: float, weight: float) -> float
  func linear_to_db(lin: float) -> float
  func load(path: String) -> Resource
  func log(x: float) -> float
  func max(...) -> Variant
  func maxf(a: float, b: float) -> float
  func maxi(a: int, b: int) -> int
  func min(...) -> Variant
  func minf(a: float, b: float) -> float
  func mini(a: int, b: int) -> int
  func move_toward(from: float, to: float, delta: float) -> float
  func nearest_po2(value: int) -> int
  func pingpong(value: float, length: float) -> float
  func posmod(x: int, y: int) -> int
  func pow(base: float, exp: float) -> float
  func preload(path: String) -> Resource
  func print(...)
  func print_debug(...)
  func print_rich(...)
  func print_stack()
  func print_verbose(...)
  func printerr(...)
  func printraw(...)
  func prints(...)
  func printt(...)
  func push_error(...)
  func push_warning(...)
  func rad_to_deg(rad: float) -> float
  func rand_from_seed(seed: int) -> PackedInt64Array
  func randf() -> float
  func randf_range(from: float, to: float) -> float
  func randfn(mean: float, deviation: float) -> float
  func randi() -> int
  func randi_range(from: int, to: int) -> int
  func randomize()
  func range(...) -> Array
  func remap(value: float, istart: float, istop: float, ostart: float, ostop: float) -> float
  func rid_allocate_id() -> int
  func rid_from_int64(base: int) -> RID
  func rotate_toward(from: float, to: float, delta: float) -> float
  func round(x: Variant) -> Variant
  func roundf(x: float) -> float
  func roundi(x: float) -> int
  func seed(base: int)
  func sign(x: Variant) -> Variant
  func signf(x: float) -> float
  func signi(x: int) -> int
  func sin(angle_rad: float) -> float
  func sinh(x: float) -> float
  func smoothstep(from: float, to: float, x: float) -> float
  func snapped(x: Variant, step: Variant) -> Variant
  func snappedf(x: float, step: float) -> float
  func snappedi(x: float, step: int) -> int
  func sqrt(x: float) -> float
  func step_decimals(x: float) -> int
  func str(...) -> String
  func str_to_var(string: String) -> Variant
  func tan(angle_rad: float) -> float
  func tanh(x: float) -> float
  func type_convert(variant: Variant, type: enum Type) -> Variant
  func type_exists(type: StringName) -> bool
  func type_string(type: enum Type) -> String
  func typeof(variable: Variant) -> enum Type
  func var_to_bytes(variable: Variant) -> PackedByteArray
  func var_to_bytes_with_objects(variable: Variant) -> PackedByteArray
  func var_to_str(variable: Variant) -> String
  func weakref(obj: Variant) -> Variant
  func wrap(value: Variant, min: Variant, max: Variant) -> Variant
  func wrapf(value: float, min: float, max: float) -> float
  func wrapi(value: int, min: int, max: int) -> int

# bool

  func bool(from: float) -> bool
  func bool(from: int) -> bool

# int

  func int(from: bool) -> int
  func int(from: float) -> int
  func int(from: String) -> int

# float

  func float(from: bool) -> float
  func float(from: int) -> float
  func float(from: String) -> float

# AABB

  func AABB() -> AABB
  func AABB(position: Vector3, size: Vector3) -> AABB

  class AABB:

    var end: Vector3 = Vector3(0, 0, 0)
    var position: Vector3 = Vector3(0, 0, 0)
    var size: Vector3 = Vector3(0, 0, 0)

    func abs() -> AABB
    func encloses(with: AABB) -> bool
    func expand(to_point: Vector3) -> AABB
    func get_center() -> Vector3
    func get_endpoint(idx: int) -> Vector3
    func get_longest_axis() -> Vector3
    func get_longest_axis_index() -> int
    func get_longest_axis_size() -> float
    func get_shortest_axis() -> Vector3
    func get_shortest_axis_index() -> int
    func get_shortest_axis_size() -> float
    func get_support(dir: Vector3) -> Vector3
    func get_volume() -> float
    func grow(by: float) -> AABB
    func has_point(point: Vector3) -> bool
    func has_surface() -> bool
    func has_volume() -> bool
    func intersection(with: AABB) -> AABB
    func intersects(with: AABB) -> bool
    func intersects_plane(plane: Plane) -> bool
    func intersects_ray(from: Vector3, dir: Vector3) -> Variant
    func intersects_segment(from: Vector3, to: Vector3) -> Variant
    func is_equal_approx(aabb: AABB) -> bool
    func is_finite() -> bool
    func merge(with: AABB) -> AABB

# Array

  func Array() -> Array
  func Array(base: Array, type: enum Type, class_name: StringName, script: Variant) -> Array
  func Array(from: PackedByteArray) -> Array
  func Array(from: PackedColorArray) -> Array
  func Array(from: PackedFloat32Array) -> Array
  func Array(from: PackedFloat64Array) -> Array
  func Array(from: PackedInt32Array) -> Array
  func Array(from: PackedInt64Array) -> Array
  func Array(from: PackedStringArray) -> Array
  func Array(from: PackedVector2Array) -> Array
  func Array(from: PackedVector3Array) -> Array

  class Array:

    func all(method: Callable) -> bool
    func any(method: Callable) -> bool
    func append(value: Variant)
    func append_array(array: Array)
    func assign(array: Array)
    func back() -> Variant
    func bsearch(value: Variant, before: bool = true) -> int
    func bsearch_custom(value: Variant, func: Callable, before: bool = true) -> int
    func clear()
    func count(value: Variant) -> enum 1
    func duplicate(deep: bool = false) -> Array
    func erase(value: Variant)
    func fill(value: Variant)
    func filter(method: Callable) -> Array
    func find(what: Variant, from: int = 0) -> int
    func front() -> Variant
    func get_typed_builtin() -> enum Type
    func get_typed_class_name() -> StringName
    func get_typed_script() -> Variant
    func has(value: Variant) -> bool
    func hash() -> int
    func insert(position: int, value: Variant) -> int
    func is_empty() -> bool
    func is_read_only() -> bool
    func is_same_typed(array: Array) -> bool
    func is_typed() -> bool
    func make_read_only()
    func map(method: Callable) -> Array
    func max() -> Variant
    func min() -> Variant
    func pick_random() -> Variant
    func pop_at(position: int) -> Variant
    func pop_back() -> Variant
    func pop_front() -> Variant
    func push_back(value: Variant)
    func push_front(value: Variant)
    func reduce(method: Callable, accum: Variant = null) -> Variant
    func remove_at(position: int)
    func resize(size: int) -> int
    func reverse()
    func rfind(what: Variant, from: int = -1) -> int
    func shuffle()
    func size() -> int
    func slice(begin: int, end: int = 2147483647, step: int = 1, deep: bool = false) -> Array
    func sort()
    func sort_custom(func: Callable)

# Basis

  func Basis() -> Basis
  func Basis(axis: Vector3, angle: float) -> Basis
  func Basis(from: Quaternion) -> Basis
  func Basis(x_axis: Vector3, y_axis: Vector3, z_axis: Vector3) -> Basis

  class Basis:

    const FLIP_X = Basis(Vector3(-1, 0, 0), Vector3(0, 1, 0), Vector3(0, 0, 1))
    const FLIP_Y = Basis(Vector3(1, 0, 0), Vector3(0, -1, 0), Vector3(0, 0, 1))
    const FLIP_Z = Basis(Vector3(1, 0, 0), Vector3(0, 1, 0), Vector3(0, 0, -1))
    const IDENTITY = Basis(Vector3(1, 0, 0), Vector3(0, 1, 0), Vector3(0, 0, 1))

    static func from_euler(euler: Vector3, order: enum EulerOrder = EULER_ORDER_YXZ) -> Basis
    static func from_scale(scale: Vector3) -> Basis
    static func looking_at(target: Vector3, up: Vector3 = Vector3(0, 1, 0), use_model_front: bool = false) -> Basis

    var x: Vector3 = Vector3(1, 0, 0)
    var y: Vector3 = Vector3(0, 1, 0)
    var z: Vector3 = Vector3(0, 0, 1)

    func determinant() -> float
    func get_euler(order: enum EulerOrder = EULER_ORDER_YXZ) -> Vector3
    func get_rotation_quaternion() -> Quaternion
    func get_scale() -> Vector3
    func inverse() -> Basis
    func is_conformal() -> bool
    func is_equal_approx(b: Basis) -> bool
    func is_finite() -> bool
    func orthonormalized() -> Basis
    func rotated(axis: Vector3, angle: float) -> Basis
    func scaled(scale: Vector3) -> Basis
    func slerp(to: Basis, weight: float) -> Basis
    func tdotx(with: Vector3) -> float
    func tdoty(with: Vector3) -> float
    func tdotz(with: Vector3) -> float
    func transposed() -> Basis

# Callable

  func Callable() -> Callable
  func Callable(object: Object, method: StringName) -> Callable

  class Callable:

    func bind(...) -> Callable
    func bindv(arguments: Array) -> Callable
    func call(...) -> Variant
    func call_deferred(...)
    func callv(arguments: Array) -> Variant
    func get_bound_arguments() -> Array
    func get_bound_arguments_count() -> int
    func get_method() -> StringName
    func get_object() -> Object
    func get_object_id() -> int
    func hash() -> int
    func is_custom() -> bool
    func is_null() -> bool
    func is_standard() -> bool
    func is_valid() -> bool
    func rpc(...)
    func rpc_id(peer_id: int, ...)
    func unbind(argcount: int) -> Callable

# Color

  func Color() -> Color
  func Color(from: Color, alpha: float) -> Color
  func Color(code: String) -> Color
  func Color(code: String, alpha: float) -> Color
  func Color(r: float, g: float, b: float) -> Color
  func Color(r: float, g: float, b: float, a: float) -> Color

  class Color:

    const ALICE_BLUE = Color(0.941176, 0.972549, 1, 1)
    const ANTIQUE_WHITE = Color(0.980392, 0.921569, 0.843137, 1)
    const AQUA = Color(0, 1, 1, 1)
    const AQUAMARINE = Color(0.498039, 1, 0.831373, 1)
    const AZURE = Color(0.941176, 1, 1, 1)
    const BEIGE = Color(0.960784, 0.960784, 0.862745, 1)
    const BISQUE = Color(1, 0.894118, 0.768627, 1)
    const BLACK = Color(0, 0, 0, 1)
    const BLANCHED_ALMOND = Color(1, 0.921569, 0.803922, 1)
    const BLUE = Color(0, 0, 1, 1)
    const BLUE_VIOLET = Color(0.541176, 0.168627, 0.886275, 1)
    const BROWN = Color(0.647059, 0.164706, 0.164706, 1)
    const BURLYWOOD = Color(0.870588, 0.721569, 0.529412, 1)
    const CADET_BLUE = Color(0.372549, 0.619608, 0.627451, 1)
    const CHARTREUSE = Color(0.498039, 1, 0, 1)
    const CHOCOLATE = Color(0.823529, 0.411765, 0.117647, 1)
    const CORAL = Color(1, 0.498039, 0.313726, 1)
    const CORNFLOWER_BLUE = Color(0.392157, 0.584314, 0.929412, 1)
    const CORNSILK = Color(1, 0.972549, 0.862745, 1)
    const CRIMSON = Color(0.862745, 0.0784314, 0.235294, 1)
    const CYAN = Color(0, 1, 1, 1)
    const DARK_BLUE = Color(0, 0, 0.545098, 1)
    const DARK_CYAN = Color(0, 0.545098, 0.545098, 1)
    const DARK_GOLDENROD = Color(0.721569, 0.52549, 0.0431373, 1)
    const DARK_GRAY = Color(0.662745, 0.662745, 0.662745, 1)
    const DARK_GREEN = Color(0, 0.392157, 0, 1)
    const DARK_KHAKI = Color(0.741176, 0.717647, 0.419608, 1)
    const DARK_MAGENTA = Color(0.545098, 0, 0.545098, 1)
    const DARK_OLIVE_GREEN = Color(0.333333, 0.419608, 0.184314, 1)
    const DARK_ORANGE = Color(1, 0.54902, 0, 1)
    const DARK_ORCHID = Color(0.6, 0.196078, 0.8, 1)
    const DARK_RED = Color(0.545098, 0, 0, 1)
    const DARK_SALMON = Color(0.913725, 0.588235, 0.478431, 1)
    const DARK_SEA_GREEN = Color(0.560784, 0.737255, 0.560784, 1)
    const DARK_SLATE_BLUE = Color(0.282353, 0.239216, 0.545098, 1)
    const DARK_SLATE_GRAY = Color(0.184314, 0.309804, 0.309804, 1)
    const DARK_TURQUOISE = Color(0, 0.807843, 0.819608, 1)
    const DARK_VIOLET = Color(0.580392, 0, 0.827451, 1)
    const DEEP_PINK = Color(1, 0.0784314, 0.576471, 1)
    const DEEP_SKY_BLUE = Color(0, 0.74902, 1, 1)
    const DIM_GRAY = Color(0.411765, 0.411765, 0.411765, 1)
    const DODGER_BLUE = Color(0.117647, 0.564706, 1, 1)
    const FIREBRICK = Color(0.698039, 0.133333, 0.133333, 1)
    const FLORAL_WHITE = Color(1, 0.980392, 0.941176, 1)
    const FOREST_GREEN = Color(0.133333, 0.545098, 0.133333, 1)
    const FUCHSIA = Color(1, 0, 1, 1)
    const GAINSBORO = Color(0.862745, 0.862745, 0.862745, 1)
    const GHOST_WHITE = Color(0.972549, 0.972549, 1, 1)
    const GOLD = Color(1, 0.843137, 0, 1)
    const GOLDENROD = Color(0.854902, 0.647059, 0.12549, 1)
    const GRAY = Color(0.745098, 0.745098, 0.745098, 1)
    const GREEN = Color(0, 1, 0, 1)
    const GREEN_YELLOW = Color(0.678431, 1, 0.184314, 1)
    const HONEYDEW = Color(0.941176, 1, 0.941176, 1)
    const HOT_PINK = Color(1, 0.411765, 0.705882, 1)
    const INDIAN_RED = Color(0.803922, 0.360784, 0.360784, 1)
    const INDIGO = Color(0.294118, 0, 0.509804, 1)
    const IVORY = Color(1, 1, 0.941176, 1)
    const KHAKI = Color(0.941176, 0.901961, 0.54902, 1)
    const LAVENDER = Color(0.901961, 0.901961, 0.980392, 1)
    const LAVENDER_BLUSH = Color(1, 0.941176, 0.960784, 1)
    const LAWN_GREEN = Color(0.486275, 0.988235, 0, 1)
    const LEMON_CHIFFON = Color(1, 0.980392, 0.803922, 1)
    const LIGHT_BLUE = Color(0.678431, 0.847059, 0.901961, 1)
    const LIGHT_CORAL = Color(0.941176, 0.501961, 0.501961, 1)
    const LIGHT_CYAN = Color(0.878431, 1, 1, 1)
    const LIGHT_GOLDENROD = Color(0.980392, 0.980392, 0.823529, 1)
    const LIGHT_GRAY = Color(0.827451, 0.827451, 0.827451, 1)
    const LIGHT_GREEN = Color(0.564706, 0.933333, 0.564706, 1)
    const LIGHT_PINK = Color(1, 0.713726, 0.756863, 1)
    const LIGHT_SALMON = Color(1, 0.627451, 0.478431, 1)
    const LIGHT_SEA_GREEN = Color(0.12549, 0.698039, 0.666667, 1)
    const LIGHT_SKY_BLUE = Color(0.529412, 0.807843, 0.980392, 1)
    const LIGHT_SLATE_GRAY = Color(0.466667, 0.533333, 0.6, 1)
    const LIGHT_STEEL_BLUE = Color(0.690196, 0.768627, 0.870588, 1)
    const LIGHT_YELLOW = Color(1, 1, 0.878431, 1)
    const LIME = Color(0, 1, 0, 1)
    const LIME_GREEN = Color(0.196078, 0.803922, 0.196078, 1)
    const LINEN = Color(0.980392, 0.941176, 0.901961, 1)
    const MAGENTA = Color(1, 0, 1, 1)
    const MAROON = Color(0.690196, 0.188235, 0.376471, 1)
    const MEDIUM_AQUAMARINE = Color(0.4, 0.803922, 0.666667, 1)
    const MEDIUM_BLUE = Color(0, 0, 0.803922, 1)
    const MEDIUM_ORCHID = Color(0.729412, 0.333333, 0.827451, 1)
    const MEDIUM_PURPLE = Color(0.576471, 0.439216, 0.858824, 1)
    const MEDIUM_SEA_GREEN = Color(0.235294, 0.701961, 0.443137, 1)
    const MEDIUM_SLATE_BLUE = Color(0.482353, 0.407843, 0.933333, 1)
    const MEDIUM_SPRING_GREEN = Color(0, 0.980392, 0.603922, 1)
    const MEDIUM_TURQUOISE = Color(0.282353, 0.819608, 0.8, 1)
    const MEDIUM_VIOLET_RED = Color(0.780392, 0.0823529, 0.521569, 1)
    const MIDNIGHT_BLUE = Color(0.0980392, 0.0980392, 0.439216, 1)
    const MINT_CREAM = Color(0.960784, 1, 0.980392, 1)
    const MISTY_ROSE = Color(1, 0.894118, 0.882353, 1)
    const MOCCASIN = Color(1, 0.894118, 0.709804, 1)
    const NAVAJO_WHITE = Color(1, 0.870588, 0.678431, 1)
    const NAVY_BLUE = Color(0, 0, 0.501961, 1)
    const OLD_LACE = Color(0.992157, 0.960784, 0.901961, 1)
    const OLIVE = Color(0.501961, 0.501961, 0, 1)
    const OLIVE_DRAB = Color(0.419608, 0.556863, 0.137255, 1)
    const ORANGE = Color(1, 0.647059, 0, 1)
    const ORANGE_RED = Color(1, 0.270588, 0, 1)
    const ORCHID = Color(0.854902, 0.439216, 0.839216, 1)
    const PALE_GOLDENROD = Color(0.933333, 0.909804, 0.666667, 1)
    const PALE_GREEN = Color(0.596078, 0.984314, 0.596078, 1)
    const PALE_TURQUOISE = Color(0.686275, 0.933333, 0.933333, 1)
    const PALE_VIOLET_RED = Color(0.858824, 0.439216, 0.576471, 1)
    const PAPAYA_WHIP = Color(1, 0.937255, 0.835294, 1)
    const PEACH_PUFF = Color(1, 0.854902, 0.72549, 1)
    const PERU = Color(0.803922, 0.521569, 0.247059, 1)
    const PINK = Color(1, 0.752941, 0.796078, 1)
    const PLUM = Color(0.866667, 0.627451, 0.866667, 1)
    const POWDER_BLUE = Color(0.690196, 0.878431, 0.901961, 1)
    const PURPLE = Color(0.627451, 0.12549, 0.941176, 1)
    const REBECCA_PURPLE = Color(0.4, 0.2, 0.6, 1)
    const RED = Color(1, 0, 0, 1)
    const ROSY_BROWN = Color(0.737255, 0.560784, 0.560784, 1)
    const ROYAL_BLUE = Color(0.254902, 0.411765, 0.882353, 1)
    const SADDLE_BROWN = Color(0.545098, 0.270588, 0.0745098, 1)
    const SALMON = Color(0.980392, 0.501961, 0.447059, 1)
    const SANDY_BROWN = Color(0.956863, 0.643137, 0.376471, 1)
    const SEA_GREEN = Color(0.180392, 0.545098, 0.341176, 1)
    const SEASHELL = Color(1, 0.960784, 0.933333, 1)
    const SIENNA = Color(0.627451, 0.321569, 0.176471, 1)
    const SILVER = Color(0.752941, 0.752941, 0.752941, 1)
    const SKY_BLUE = Color(0.529412, 0.807843, 0.921569, 1)
    const SLATE_BLUE = Color(0.415686, 0.352941, 0.803922, 1)
    const SLATE_GRAY = Color(0.439216, 0.501961, 0.564706, 1)
    const SNOW = Color(1, 0.980392, 0.980392, 1)
    const SPRING_GREEN = Color(0, 1, 0.498039, 1)
    const STEEL_BLUE = Color(0.27451, 0.509804, 0.705882, 1)
    const TAN = Color(0.823529, 0.705882, 0.54902, 1)
    const TEAL = Color(0, 0.501961, 0.501961, 1)
    const THISTLE = Color(0.847059, 0.74902, 0.847059, 1)
    const TOMATO = Color(1, 0.388235, 0.278431, 1)
    const TRANSPARENT = Color(1, 1, 1, 0)
    const TURQUOISE = Color(0.25098, 0.878431, 0.815686, 1)
    const VIOLET = Color(0.933333, 0.509804, 0.933333, 1)
    const WEB_GRAY = Color(0.501961, 0.501961, 0.501961, 1)
    const WEB_GREEN = Color(0, 0.501961, 0, 1)
    const WEB_MAROON = Color(0.501961, 0, 0, 1)
    const WEB_PURPLE = Color(0.501961, 0, 0.501961, 1)
    const WHEAT = Color(0.960784, 0.870588, 0.701961, 1)
    const WHITE = Color(1, 1, 1, 1)
    const WHITE_SMOKE = Color(0.960784, 0.960784, 0.960784, 1)
    const YELLOW = Color(1, 1, 0, 1)
    const YELLOW_GREEN = Color(0.603922, 0.803922, 0.196078, 1)

    static func from_hsv(h: float, s: float, v: float, alpha: float = 1.0) -> Color
    static func from_ok_hsl(h: float, s: float, l: float, alpha: float = 1.0) -> Color
    static func from_rgbe9995(rgbe: int) -> Color
    static func from_string(str: String, default: Color) -> Color
    static func hex(hex: int) -> Color
    static func hex64(hex: int) -> Color
    static func html(rgba: String) -> Color
    static func html_is_valid(color: String) -> bool

    var a: float = 1.0
    var a8: int = 255
    var b: float = 0.0
    var b8: int = 0
    var g: float = 0.0
    var g8: int = 0
    var h: float = 0.0
    var r: float = 0.0
    var r8: int = 0
    var s: float = 0.0
    var v: float = 0.0

    func blend(over: Color) -> Color
    func clamp(min: Color = Color(0, 0, 0, 0), max: Color = Color(1, 1, 1, 1)) -> Color
    func darkened(amount: float) -> Color
    func get_luminance() -> float
    func inverted() -> Color
    func is_equal_approx(to: Color) -> bool
    func lerp(to: Color, weight: float) -> Color
    func lightened(amount: float) -> Color
    func linear_to_srgb() -> Color
    func srgb_to_linear() -> Color
    func to_abgr32() -> int
    func to_abgr64() -> int
    func to_argb32() -> int
    func to_argb64() -> int
    func to_html(with_alpha: bool = true) -> String
    func to_rgba32() -> int
    func to_rgba64() -> int

# Dictionary

  func Dictionary() -> Dictionary

  class Dictionary:

    func clear()
    func duplicate(deep: bool = false) -> Dictionary
    func erase(key: Variant) -> bool
    func find_key(value: Variant) -> Variant
    func get(key: Variant, default: Variant = null) -> Variant
    func has(key: Variant) -> bool
    func has_all(keys: Array) -> bool
    func hash() -> int
    func is_empty() -> bool
    func is_read_only() -> bool
    func keys() -> Array
    func make_read_only()
    func merge(dictionary: Dictionary, overwrite: bool = false)
    func size() -> int
    func values() -> Array

# NodePath

  func NodePath() -> NodePath
  func NodePath(from: String) -> NodePath

  class NodePath:

    func get_as_property_path() -> NodePath
    func get_concatenated_names() -> StringName
    func get_concatenated_subnames() -> StringName
    func get_name(idx: int) -> StringName
    func get_name_count() -> int
    func get_subname(idx: int) -> StringName
    func get_subname_count() -> int
    func hash() -> int
    func is_absolute() -> bool
    func is_empty() -> bool

# PackedByteArray

  func PackedByteArray() -> PackedByteArray
  func PackedByteArray(from: Array) -> PackedByteArray

  class PackedByteArray:

    func append(value: int) -> bool
    func append_array(array: PackedByteArray)
    func bsearch(value: int, before: bool = true) -> int
    func clear()
    func compress(compression_mode: enum FileAccess.CompressionMode = FileAccess.COMPRESSION_FASTLZ) -> PackedByteArray
    func count(value: int) -> int
    func decode_double(byte_offset: int) -> float
    func decode_float(byte_offset: int) -> float
    func decode_half(byte_offset: int) -> float
    func decode_s16(byte_offset: int) -> int
    func decode_s32(byte_offset: int) -> int
    func decode_s64(byte_offset: int) -> int
    func decode_s8(byte_offset: int) -> int
    func decode_u16(byte_offset: int) -> int
    func decode_u32(byte_offset: int) -> int
    func decode_u64(byte_offset: int) -> int
    func decode_u8(byte_offset: int) -> int
    func decode_var(byte_offset: int, allow_objects: bool = false) -> Variant
    func decode_var_size(byte_offset: int, allow_objects: bool = false) -> int
    func decompress(buffer_size: int, compression_mode: enum FileAccess.CompressionMode = FileAccess.COMPRESSION_FASTLZ) -> PackedByteArray
    func decompress_dynamic(max_output_size: int, compression_mode: enum FileAccess.CompressionMode = FileAccess.COMPRESSION_FASTLZ) -> PackedByteArray
    func duplicate() -> PackedByteArray
    func encode_double(byte_offset: int, value: float)
    func encode_float(byte_offset: int, value: float)
    func encode_half(byte_offset: int, value: float)
    func encode_s16(byte_offset: int, value: int)
    func encode_s32(byte_offset: int, value: int)
    func encode_s64(byte_offset: int, value: int)
    func encode_s8(byte_offset: int, value: int)
    func encode_u16(byte_offset: int, value: int)
    func encode_u32(byte_offset: int, value: int)
    func encode_u64(byte_offset: int, value: int)
    func encode_u8(byte_offset: int, value: int)
    func encode_var(byte_offset: int, value: Variant, allow_objects: bool = false) -> int
    func fill(value: int)
    func find(value: int, from: int = 0) -> int
    func get_string_from_ascii() -> String
    func get_string_from_utf16() -> String
    func get_string_from_utf32() -> String
    func get_string_from_utf8() -> String
    func get_string_from_wchar() -> String
    func has(value: int) -> bool
    func has_encoded_var(byte_offset: int, allow_objects: bool = false) -> bool
    func hex_encode() -> String
    func insert(at_index: int, value: int) -> int
    func is_empty() -> bool
    func push_back(value: int) -> bool
    func remove_at(index: int)
    func resize(new_size: int) -> int
    func reverse()
    func rfind(value: int, from: int = -1) -> int
    func set(index: int, value: int)
    func size() -> int
    func slice(begin: int, end: int = 2147483647) -> PackedByteArray
    func sort()
    func to_float32_array() -> PackedFloat32Array
    func to_float64_array() -> PackedFloat64Array
    func to_int32_array() -> PackedInt32Array
    func to_int64_array() -> PackedInt64Array

# PackedColorArray

  func PackedColorArray() -> PackedColorArray
  func PackedColorArray(from: Array) -> PackedColorArray

  class PackedColorArray:

    func append(value: Color) -> bool
    func append_array(array: PackedColorArray)
    func bsearch(value: Color, before: bool = true) -> int
    func clear()
    func count(value: Color) -> int
    func duplicate() -> PackedColorArray
    func fill(value: Color)
    func find(value: Color, from: int = 0) -> int
    func has(value: Color) -> bool
    func insert(at_index: int, value: Color) -> int
    func is_empty() -> bool
    func push_back(value: Color) -> bool
    func remove_at(index: int)
    func resize(new_size: int) -> int
    func reverse()
    func rfind(value: Color, from: int = -1) -> int
    func set(index: int, value: Color)
    func size() -> int
    func slice(begin: int, end: int = 2147483647) -> PackedColorArray
    func sort()
    func to_byte_array() -> PackedByteArray

# PackedFloat32Array

  func PackedFloat32Array() -> PackedFloat32Array
  func PackedFloat32Array(from: Array) -> PackedFloat32Array

  class PackedFloat32Array:

    func append(value: float) -> bool
    func append_array(array: PackedFloat32Array)
    func bsearch(value: float, before: bool = true) -> int
    func clear()
    func count(value: float) -> int
    func duplicate() -> PackedFloat32Array
    func fill(value: float)
    func find(value: float, from: int = 0) -> int
    func has(value: float) -> bool
    func insert(at_index: int, value: float) -> int
    func is_empty() -> bool
    func push_back(value: float) -> bool
    func remove_at(index: int)
    func resize(new_size: int) -> int
    func reverse()
    func rfind(value: float, from: int = -1) -> int
    func set(index: int, value: float)
    func size() -> int
    func slice(begin: int, end: int = 2147483647) -> PackedFloat32Array
    func sort()
    func to_byte_array() -> PackedByteArray

# PackedFloat64Array

  func PackedFloat64Array() -> PackedFloat64Array
  func PackedFloat64Array(from: Array) -> PackedFloat64Array

  class PackedFloat64Array:

    func append(value: float) -> bool
    func append_array(array: PackedFloat64Array)
    func bsearch(value: float, before: bool = true) -> int
    func clear()
    func count(value: float) -> int
    func duplicate() -> PackedFloat64Array
    func fill(value: float)
    func find(value: float, from: int = 0) -> int
    func has(value: float) -> bool
    func insert(at_index: int, value: float) -> int
    func is_empty() -> bool
    func push_back(value: float) -> bool
    func remove_at(index: int)
    func resize(new_size: int) -> int
    func reverse()
    func rfind(value: float, from: int = -1) -> int
    func set(index: int, value: float)
    func size() -> int
    func slice(begin: int, end: int = 2147483647) -> PackedFloat64Array
    func sort()
    func to_byte_array() -> PackedByteArray

# PackedInt32Array

  func PackedInt32Array() -> PackedInt32Array
  func PackedInt32Array(from: Array) -> PackedInt32Array

  class PackedInt32Array:

    func append(value: int) -> bool
    func append_array(array: PackedInt32Array)
    func bsearch(value: int, before: bool = true) -> int
    func clear()
    func count(value: int) -> int
    func duplicate() -> PackedInt32Array
    func fill(value: int)
    func find(value: int, from: int = 0) -> int
    func has(value: int) -> bool
    func insert(at_index: int, value: int) -> int
    func is_empty() -> bool
    func push_back(value: int) -> bool
    func remove_at(index: int)
    func resize(new_size: int) -> int
    func reverse()
    func rfind(value: int, from: int = -1) -> int
    func set(index: int, value: int)
    func size() -> int
    func slice(begin: int, end: int = 2147483647) -> PackedInt32Array
    func sort()
    func to_byte_array() -> PackedByteArray

# PackedInt64Array

  func PackedInt64Array() -> PackedInt64Array
  func PackedInt64Array(from: Array) -> PackedInt64Array

  class PackedInt64Array:

    func append(value: int) -> bool
    func append_array(array: PackedInt64Array)
    func bsearch(value: int, before: bool = true) -> int
    func clear()
    func count(value: int) -> int
    func duplicate() -> PackedInt64Array
    func fill(value: int)
    func find(value: int, from: int = 0) -> int
    func has(value: int) -> bool
    func insert(at_index: int, value: int) -> int
    func is_empty() -> bool
    func push_back(value: int) -> bool
    func remove_at(index: int)
    func resize(new_size: int) -> int
    func reverse()
    func rfind(value: int, from: int = -1) -> int
    func set(index: int, value: int)
    func size() -> int
    func slice(begin: int, end: int = 2147483647) -> PackedInt64Array
    func sort()
    func to_byte_array() -> PackedByteArray

# PackedStringArray

  func PackedStringArray() -> PackedStringArray
  func PackedStringArray(from: Array) -> PackedStringArray

  class PackedStringArray:

    func append(value: String) -> bool
    func append_array(array: PackedStringArray)
    func bsearch(value: String, before: bool = true) -> int
    func clear()
    func count(value: String) -> int
    func duplicate() -> PackedStringArray
    func fill(value: String)
    func find(value: String, from: int = 0) -> int
    func has(value: String) -> bool
    func insert(at_index: int, value: String) -> int
    func is_empty() -> bool
    func push_back(value: String) -> bool
    func remove_at(index: int)
    func resize(new_size: int) -> int
    func reverse()
    func rfind(value: String, from: int = -1) -> int
    func set(index: int, value: String)
    func size() -> int
    func slice(begin: int, end: int = 2147483647) -> PackedStringArray
    func sort()
    func to_byte_array() -> PackedByteArray

# PackedVector2Array

  func PackedVector2Array() -> PackedVector2Array
  func PackedVector2Array(from: Array) -> PackedVector2Array

  class PackedVector2Array:

    func append(value: Vector2) -> bool
    func append_array(array: PackedVector2Array)
    func bsearch(value: Vector2, before: bool = true) -> int
    func clear()
    func count(value: Vector2) -> int
    func duplicate() -> PackedVector2Array
    func fill(value: Vector2)
    func find(value: Vector2, from: int = 0) -> int
    func has(value: Vector2) -> bool
    func insert(at_index: int, value: Vector2) -> int
    func is_empty() -> bool
    func push_back(value: Vector2) -> bool
    func remove_at(index: int)
    func resize(new_size: int) -> int
    func reverse()
    func rfind(value: Vector2, from: int = -1) -> int
    func set(index: int, value: Vector2)
    func size() -> int
    func slice(begin: int, end: int = 2147483647) -> PackedVector2Array
    func sort()
    func to_byte_array() -> PackedByteArray

# PackedVector3Array

  func PackedVector3Array() -> PackedVector3Array
  func PackedVector3Array(from: Array) -> PackedVector3Array

  class PackedVector3Array:

    func append(value: Vector3) -> bool
    func append_array(array: PackedVector3Array)
    func bsearch(value: Vector3, before: bool = true) -> int
    func clear()
    func count(value: Vector3) -> int
    func duplicate() -> PackedVector3Array
    func fill(value: Vector3)
    func find(value: Vector3, from: int = 0) -> int
    func has(value: Vector3) -> bool
    func insert(at_index: int, value: Vector3) -> int
    func is_empty() -> bool
    func push_back(value: Vector3) -> bool
    func remove_at(index: int)
    func resize(new_size: int) -> int
    func reverse()
    func rfind(value: Vector3, from: int = -1) -> int
    func set(index: int, value: Vector3)
    func size() -> int
    func slice(begin: int, end: int = 2147483647) -> PackedVector3Array
    func sort()
    func to_byte_array() -> PackedByteArray

# Plane

  func Plane() -> Plane
  func Plane(a: float, b: float, c: float, d: float) -> Plane
  func Plane(normal: Vector3) -> Plane
  func Plane(normal: Vector3, d: float) -> Plane
  func Plane(normal: Vector3, point: Vector3) -> Plane
  func Plane(point1: Vector3, point2: Vector3, point3: Vector3) -> Plane

  class Plane:

    const PLANE_XY = Plane(0, 0, 1, 0)
    const PLANE_XZ = Plane(0, 1, 0, 0)
    const PLANE_YZ = Plane(1, 0, 0, 0)

    var d: float = 0.0
    var normal: Vector3 = Vector3(0, 0, 0)
    var x: float = 0.0
    var y: float = 0.0
    var z: float = 0.0

    func distance_to(point: Vector3) -> float
    func get_center() -> Vector3
    func has_point(point: Vector3, tolerance: float = 1e-05) -> bool
    func intersect_3(b: Plane, c: Plane) -> Variant
    func intersects_ray(from: Vector3, dir: Vector3) -> Variant
    func intersects_segment(from: Vector3, to: Vector3) -> Variant
    func is_equal_approx(to_plane: Plane) -> bool
    func is_finite() -> bool
    func is_point_over(point: Vector3) -> bool
    func normalized() -> Plane
    func project(point: Vector3) -> Vector3

# Projection

  func Projection() -> Projection
  func Projection(from: Transform3D) -> Projection
  func Projection(x_axis: Vector4, y_axis: Vector4, z_axis: Vector4, w_axis: Vector4) -> Projection

  class Projection:

    const IDENTITY = Projection(Vector4(1, 0, 0, 0), Vector4(0, 1, 0, 0), Vector4(0, 0, 1, 0), Vector4(0, 0, 0, 1))
    const ZERO = Projection(Vector4(0, 0, 0, 0), Vector4(0, 0, 0, 0), Vector4(0, 0, 0, 0), Vector4(0, 0, 0, 0))

    enum Plane {
      PLANE_NEAR = 0,
      PLANE_FAR = 1,
      PLANE_LEFT = 2,
      PLANE_TOP = 3,
      PLANE_RIGHT = 4,
      PLANE_BOTTOM = 5,
    }

    static func create_depth_correction(flip_y: bool) -> Projection
    static func create_fit_aabb(aabb: AABB) -> Projection
    static func create_for_hmd(eye: int, aspect: float, intraocular_dist: float, display_width: float, display_to_lens: float, oversample: float, z_near: float, z_far: float) -> Projection
    static func create_frustum(left: float, right: float, bottom: float, top: float, z_near: float, z_far: float) -> Projection
    static func create_frustum_aspect(size: float, aspect: float, offset: Vector2, z_near: float, z_far: float, flip_fov: bool = false) -> Projection
    static func create_light_atlas_rect(rect: Rect2) -> Projection
    static func create_orthogonal(left: float, right: float, bottom: float, top: float, z_near: float, z_far: float) -> Projection
    static func create_orthogonal_aspect(size: float, aspect: float, z_near: float, z_far: float, flip_fov: bool = false) -> Projection
    static func create_perspective(fovy: float, aspect: float, z_near: float, z_far: float, flip_fov: bool = false) -> Projection
    static func create_perspective_hmd(fovy: float, aspect: float, z_near: float, z_far: float, flip_fov: bool, eye: int, intraocular_dist: float, convergence_dist: float) -> Projection
    static func get_fovy(fovx: float, aspect: float) -> float

    var w: Vector4 = Vector4(0, 0, 0, 1)
    var x: Vector4 = Vector4(1, 0, 0, 0)
    var y: Vector4 = Vector4(0, 1, 0, 0)
    var z: Vector4 = Vector4(0, 0, 1, 0)

    func determinant() -> float
    func flipped_y() -> Projection
    func get_aspect() -> float
    func get_far_plane_half_extents() -> Vector2
    func get_fov() -> float
    func get_lod_multiplier() -> float
    func get_pixels_per_meter(for_pixel_width: int) -> int
    func get_projection_plane(plane: enum Plane) -> Plane
    func get_viewport_half_extents() -> Vector2
    func get_z_far() -> float
    func get_z_near() -> float
    func inverse() -> Projection
    func is_orthogonal() -> bool
    func jitter_offseted(offset: Vector2) -> Projection
    func perspective_znear_adjusted(new_znear: float) -> Projection

# Quaternion

  func Quaternion() -> Quaternion
  func Quaternion(arc_from: Vector3, arc_to: Vector3) -> Quaternion
  func Quaternion(axis: Vector3, angle: float) -> Quaternion
  func Quaternion(from: Basis) -> Quaternion
  func Quaternion(x: float, y: float, z: float, w: float) -> Quaternion

  class Quaternion:

    const IDENTITY = Quaternion(0, 0, 0, 1)

    static func from_euler(euler: Vector3) -> Quaternion

    var w: float = 1.0
    var x: float = 0.0
    var y: float = 0.0
    var z: float = 0.0

    func angle_to(to: Quaternion) -> float
    func dot(with: Quaternion) -> float
    func exp() -> Quaternion
    func get_angle() -> float
    func get_axis() -> Vector3
    func get_euler(order: enum EulerOrder = EULER_ORDER_YXZ) -> Vector3
    func inverse() -> Quaternion
    func is_equal_approx(to: Quaternion) -> bool
    func is_finite() -> bool
    func is_normalized() -> bool
    func length() -> float
    func length_squared() -> float
    func log() -> Quaternion
    func normalized() -> Quaternion
    func slerp(to: Quaternion, weight: float) -> Quaternion
    func slerpni(to: Quaternion, weight: float) -> Quaternion
    func spherical_cubic_interpolate(b: Quaternion, pre_a: Quaternion, post_b: Quaternion, weight: float) -> Quaternion
    func spherical_cubic_interpolate_in_time(b: Quaternion, pre_a: Quaternion, post_b: Quaternion, weight: float, b_t: float, pre_a_t: float, post_b_t: float) -> Quaternion

# Rect2

  func Rect2() -> Rect2
  func Rect2(from: Rect2i) -> Rect2
  func Rect2(position: Vector2, size: Vector2) -> Rect2
  func Rect2(x: float, y: float, width: float, height: float) -> Rect2

  class Rect2:

    var end: Vector2 = Vector2(0, 0)
    var position: Vector2 = Vector2(0, 0)
    var size: Vector2 = Vector2(0, 0)

    func abs() -> Rect2
    func encloses(b: Rect2) -> bool
    func expand(to: Vector2) -> Rect2
    func get_area() -> float
    func get_center() -> Vector2
    func grow(amount: float) -> Rect2
    func grow_individual(left: float, top: float, right: float, bottom: float) -> Rect2
    func grow_side(side: enum Side, amount: float) -> Rect2
    func has_area() -> bool
    func has_point(point: Vector2) -> bool
    func intersection(b: Rect2) -> Rect2
    func intersects(b: Rect2, include_borders: bool = false) -> bool
    func is_equal_approx(rect: Rect2) -> bool
    func is_finite() -> bool
    func merge(b: Rect2) -> Rect2

# Rect2i

  func Rect2i() -> Rect2i
  func Rect2i(from: Rect2) -> Rect2i
  func Rect2i(position: Vector2i, size: Vector2i) -> Rect2i
  func Rect2i(x: int, y: int, width: int, height: int) -> Rect2i

  class Rect2i:

    var end: Vector2i = Vector2i(0, 0)
    var position: Vector2i = Vector2i(0, 0)
    var size: Vector2i = Vector2i(0, 0)

    func abs() -> Rect2i
    func encloses(b: Rect2i) -> bool
    func expand(to: Vector2i) -> Rect2i
    func get_area() -> int
    func get_center() -> Vector2i
    func grow(amount: int) -> Rect2i
    func grow_individual(left: int, top: int, right: int, bottom: int) -> Rect2i
    func grow_side(side: enum Side, amount: int) -> Rect2i
    func has_area() -> bool
    func has_point(point: Vector2i) -> bool
    func intersection(b: Rect2i) -> Rect2i
    func intersects(b: Rect2i) -> bool
    func merge(b: Rect2i) -> Rect2i

# RID

  func RID() -> RID

  class RID:

    func get_id() -> int
    func is_valid() -> bool

# Signal

  func Signal() -> Signal
  func Signal(object: Object, signal: StringName) -> Signal

  class Signal:

    func connect(callable: Callable, flags: enum Object.ConnectFlags = 0) -> enum Error
    func disconnect(callable: Callable)
    func emit(...)
    func get_connections() -> Array
    func get_name() -> StringName
    func get_object() -> Object
    func get_object_id() -> int
    func is_connected(callable: Callable) -> bool
    func is_null() -> bool

# String

  func String() -> String
  func String(from: NodePath) -> String
  func String(from: StringName) -> String

  class String:

    static func chr(char: int) -> String
    static func humanize_size(size: int) -> String
    static func num(number: float, decimals: int = -1) -> String
    static func num_int64(number: int, base: int = 10, capitalize_hex: bool = false) -> String
    static func num_scientific(number: float) -> String
    static func num_uint64(number: int, base: int = 10, capitalize_hex: bool = false) -> String

    func begins_with(text: String) -> bool
    func bigrams() -> PackedStringArray
    func bin_to_int() -> int
    func c_escape() -> String
    func c_unescape() -> String
    func capitalize() -> String
    func casecmp_to(to: String) -> int
    func contains(what: String) -> bool
    func count(what: String, from: int = 0, to: int = 0) -> int
    func countn(what: String, from: int = 0, to: int = 0) -> int
    func dedent() -> String
    func ends_with(text: String) -> bool
    func erase(position: int, chars: int = 1) -> String
    func find(what: String, from: int = 0) -> int
    func findn(what: String, from: int = 0) -> int
    func format(values: Variant, placeholder: String = "{_}") -> String
    func get_base_dir() -> String
    func get_basename() -> String
    func get_extension() -> String
    func get_file() -> String
    func get_slice(delimiter: String, slice: int) -> String
    func get_slice_count(delimiter: String) -> int
    func get_slicec(delimiter: int, slice: int) -> String
    func hash() -> int
    func hex_decode() -> PackedByteArray
    func hex_to_int() -> int
    func indent(prefix: String) -> String
    func insert(position: int, what: String) -> String
    func is_absolute_path() -> bool
    func is_empty() -> bool
    func is_relative_path() -> bool
    func is_subsequence_of(text: String) -> bool
    func is_subsequence_ofn(text: String) -> bool
    func is_valid_filename() -> bool
    func is_valid_float() -> bool
    func is_valid_hex_number(with_prefix: bool = false) -> bool
    func is_valid_html_color() -> bool
    func is_valid_identifier() -> bool
    func is_valid_int() -> bool
    func is_valid_ip_address() -> bool
    func join(parts: PackedStringArray) -> String
    func json_escape() -> String
    func left(length: int) -> String
    func length() -> int
    func lpad(min_length: int, character: String = " ") -> String
    func lstrip(chars: String) -> String
    func match(expr: String) -> bool
    func matchn(expr: String) -> bool
    func md5_buffer() -> PackedByteArray
    func md5_text() -> String
    func naturalcasecmp_to(to: String) -> int
    func naturalnocasecmp_to(to: String) -> int
    func nocasecmp_to(to: String) -> int
    func pad_decimals(digits: int) -> String
    func pad_zeros(digits: int) -> String
    func path_join(file: String) -> String
    func repeat(count: int) -> String
    func replace(what: String, forwhat: String) -> String
    func replacen(what: String, forwhat: String) -> String
    func reverse() -> String
    func rfind(what: String, from: int = -1) -> int
    func rfindn(what: String, from: int = -1) -> int
    func right(length: int) -> String
    func rpad(min_length: int, character: String = " ") -> String
    func rsplit(delimiter: String = "", allow_empty: bool = true, maxsplit: int = 0) -> PackedStringArray
    func rstrip(chars: String) -> String
    func sha1_buffer() -> PackedByteArray
    func sha1_text() -> String
    func sha256_buffer() -> PackedByteArray
    func sha256_text() -> String
    func similarity(text: String) -> float
    func simplify_path() -> String
    func split(delimiter: String = "", allow_empty: bool = true, maxsplit: int = 0) -> PackedStringArray
    func split_floats(delimiter: String, allow_empty: bool = true) -> PackedFloat64Array
    func strip_edges(left: bool = true, right: bool = true) -> String
    func strip_escapes() -> String
    func substr(from: int, len: int = -1) -> String
    func to_ascii_buffer() -> PackedByteArray
    func to_camel_case() -> String
    func to_float() -> float
    func to_int() -> int
    func to_lower() -> String
    func to_pascal_case() -> String
    func to_snake_case() -> String
    func to_upper() -> String
    func to_utf16_buffer() -> PackedByteArray
    func to_utf32_buffer() -> PackedByteArray
    func to_utf8_buffer() -> PackedByteArray
    func to_wchar_buffer() -> PackedByteArray
    func trim_prefix(prefix: String) -> String
    func trim_suffix(suffix: String) -> String
    func unicode_at(at: int) -> int
    func uri_decode() -> String
    func uri_encode() -> String
    func validate_filename() -> String
    func validate_node_name() -> String
    func xml_escape(escape_quotes: bool = false) -> String
    func xml_unescape() -> String

# StringName

  func StringName() -> StringName
  func StringName(from: String) -> StringName

  class StringName:

    func begins_with(text: String) -> bool
    func bigrams() -> PackedStringArray
    func bin_to_int() -> int
    func c_escape() -> String
    func c_unescape() -> String
    func capitalize() -> String
    func casecmp_to(to: String) -> int
    func contains(what: String) -> bool
    func count(what: String, from: int = 0, to: int = 0) -> int
    func countn(what: String, from: int = 0, to: int = 0) -> int
    func dedent() -> String
    func ends_with(text: String) -> bool
    func erase(position: int, chars: int = 1) -> String
    func find(what: String, from: int = 0) -> int
    func findn(what: String, from: int = 0) -> int
    func format(values: Variant, placeholder: String = "{_}") -> String
    func get_base_dir() -> String
    func get_basename() -> String
    func get_extension() -> String
    func get_file() -> String
    func get_slice(delimiter: String, slice: int) -> String
    func get_slice_count(delimiter: String) -> int
    func get_slicec(delimiter: int, slice: int) -> String
    func hash() -> int
    func hex_decode() -> PackedByteArray
    func hex_to_int() -> int
    func indent(prefix: String) -> String
    func insert(position: int, what: String) -> String
    func is_absolute_path() -> bool
    func is_empty() -> bool
    func is_relative_path() -> bool
    func is_subsequence_of(text: String) -> bool
    func is_subsequence_ofn(text: String) -> bool
    func is_valid_filename() -> bool
    func is_valid_float() -> bool
    func is_valid_hex_number(with_prefix: bool = false) -> bool
    func is_valid_html_color() -> bool
    func is_valid_identifier() -> bool
    func is_valid_int() -> bool
    func is_valid_ip_address() -> bool
    func join(parts: PackedStringArray) -> String
    func json_escape() -> String
    func left(length: int) -> String
    func length() -> int
    func lpad(min_length: int, character: String = " ") -> String
    func lstrip(chars: String) -> String
    func match(expr: String) -> bool
    func matchn(expr: String) -> bool
    func md5_buffer() -> PackedByteArray
    func md5_text() -> String
    func naturalcasecmp_to(to: String) -> int
    func naturalnocasecmp_to(to: String) -> int
    func nocasecmp_to(to: String) -> int
    func pad_decimals(digits: int) -> String
    func pad_zeros(digits: int) -> String
    func path_join(file: String) -> String
    func repeat(count: int) -> String
    func replace(what: String, forwhat: String) -> String
    func replacen(what: String, forwhat: String) -> String
    func reverse() -> String
    func rfind(what: String, from: int = -1) -> int
    func rfindn(what: String, from: int = -1) -> int
    func right(length: int) -> String
    func rpad(min_length: int, character: String = " ") -> String
    func rsplit(delimiter: String = "", allow_empty: bool = true, maxsplit: int = 0) -> PackedStringArray
    func rstrip(chars: String) -> String
    func sha1_buffer() -> PackedByteArray
    func sha1_text() -> String
    func sha256_buffer() -> PackedByteArray
    func sha256_text() -> String
    func similarity(text: String) -> float
    func simplify_path() -> String
    func split(delimiter: String = "", allow_empty: bool = true, maxsplit: int = 0) -> PackedStringArray
    func split_floats(delimiter: String, allow_empty: bool = true) -> PackedFloat64Array
    func strip_edges(left: bool = true, right: bool = true) -> String
    func strip_escapes() -> String
    func substr(from: int, len: int = -1) -> String
    func to_ascii_buffer() -> PackedByteArray
    func to_camel_case() -> String
    func to_float() -> float
    func to_int() -> int
    func to_lower() -> String
    func to_pascal_case() -> String
    func to_snake_case() -> String
    func to_upper() -> String
    func to_utf16_buffer() -> PackedByteArray
    func to_utf32_buffer() -> PackedByteArray
    func to_utf8_buffer() -> PackedByteArray
    func to_wchar_buffer() -> PackedByteArray
    func trim_prefix(prefix: String) -> String
    func trim_suffix(suffix: String) -> String
    func unicode_at(at: int) -> int
    func uri_decode() -> String
    func uri_encode() -> String
    func validate_filename() -> String
    func validate_node_name() -> String
    func xml_escape(escape_quotes: bool = false) -> String
    func xml_unescape() -> String

# Transform2D

  func Transform2D() -> Transform2D
  func Transform2D(rotation: float, position: Vector2) -> Transform2D
  func Transform2D(rotation: float, scale: Vector2, skew: float, position: Vector2) -> Transform2D
  func Transform2D(x_axis: Vector2, y_axis: Vector2, origin: Vector2) -> Transform2D

  class Transform2D:

    const FLIP_X = Transform2D(Vector2(-1, 0), Vector2(0, 1), Vector2(0, 0))
    const FLIP_Y = Transform2D(Vector2(1, 0), Vector2(0, -1), Vector2(0, 0))
    const IDENTITY = Transform2D(Vector2(1, 0), Vector2(0, 1), Vector2(0, 0))

    var origin: Vector2 = Vector2(0, 0)
    var x: Vector2 = Vector2(1, 0)
    var y: Vector2 = Vector2(0, 1)

    func affine_inverse() -> Transform2D
    func basis_xform(v: Vector2) -> Vector2
    func basis_xform_inv(v: Vector2) -> Vector2
    func determinant() -> float
    func get_origin() -> Vector2
    func get_rotation() -> float
    func get_scale() -> Vector2
    func get_skew() -> float
    func interpolate_with(xform: Transform2D, weight: float) -> Transform2D
    func inverse() -> Transform2D
    func is_conformal() -> bool
    func is_equal_approx(xform: Transform2D) -> bool
    func is_finite() -> bool
    func looking_at(target: Vector2 = Vector2(0, 0)) -> Transform2D
    func orthonormalized() -> Transform2D
    func rotated(angle: float) -> Transform2D
    func rotated_local(angle: float) -> Transform2D
    func scaled(scale: Vector2) -> Transform2D
    func scaled_local(scale: Vector2) -> Transform2D
    func translated(offset: Vector2) -> Transform2D
    func translated_local(offset: Vector2) -> Transform2D

# Transform3D

  func Transform3D() -> Transform3D
  func Transform3D(basis: Basis, origin: Vector3) -> Transform3D
  func Transform3D(from: Projection) -> Transform3D
  func Transform3D(x_axis: Vector3, y_axis: Vector3, z_axis: Vector3, origin: Vector3) -> Transform3D

  class Transform3D:

    const FLIP_X = Transform3D(Vector3(-1, 0, 0), Vector3(0, 1, 0), Vector3(0, 0, 1), Vector3(0, 0, 0))
    const FLIP_Y = Transform3D(Vector3(1, 0, 0), Vector3(0, -1, 0), Vector3(0, 0, 1), Vector3(0, 0, 0))
    const FLIP_Z = Transform3D(Vector3(1, 0, 0), Vector3(0, 1, 0), Vector3(0, 0, -1), Vector3(0, 0, 0))
    const IDENTITY = Transform3D(Vector3(1, 0, 0), Vector3(0, 1, 0), Vector3(0, 0, 1), Vector3(0, 0, 0))

    var basis: Basis = Basis(Vector3(1, 0, 0), Vector3(0, 1, 0), Vector3(0, 0, 1))
    var origin: Vector3 = Vector3(0, 0, 0)

    func affine_inverse() -> Transform3D
    func interpolate_with(xform: Transform3D, weight: float) -> Transform3D
    func inverse() -> Transform3D
    func is_equal_approx(xform: Transform3D) -> bool
    func is_finite() -> bool
    func looking_at(target: Vector3, up: Vector3 = Vector3(0, 1, 0), use_model_front: bool = false) -> Transform3D
    func orthonormalized() -> Transform3D
    func rotated(axis: Vector3, angle: float) -> Transform3D
    func rotated_local(axis: Vector3, angle: float) -> Transform3D
    func scaled(scale: Vector3) -> Transform3D
    func scaled_local(scale: Vector3) -> Transform3D
    func translated(offset: Vector3) -> Transform3D
    func translated_local(offset: Vector3) -> Transform3D

# Vector2

  func Vector2() -> Vector2
  func Vector2(from: Vector2i) -> Vector2
  func Vector2(x: float, y: float) -> Vector2

  class Vector2:

    const AXIS_X = 0
    const AXIS_Y = 1
    const DOWN = Vector2(0, 1)
    const INF = Vector2(INF, INF)
    const LEFT = Vector2(-1, 0)
    const ONE = Vector2(1, 1)
    const RIGHT = Vector2(1, 0)
    const UP = Vector2(0, -1)
    const ZERO = Vector2(0, 0)

    static func from_angle(angle: float) -> Vector2

    var x: float = 0.0
    var y: float = 0.0

    func abs() -> Vector2
    func angle() -> float
    func angle_to(to: Vector2) -> float
    func angle_to_point(to: Vector2) -> float
    func aspect() -> float
    func bezier_derivative(control_1: Vector2, control_2: Vector2, end: Vector2, t: float) -> Vector2
    func bezier_interpolate(control_1: Vector2, control_2: Vector2, end: Vector2, t: float) -> Vector2
    func bounce(n: Vector2) -> Vector2
    func ceil() -> Vector2
    func clamp(min: Vector2, max: Vector2) -> Vector2
    func cross(with: Vector2) -> float
    func cubic_interpolate(b: Vector2, pre_a: Vector2, post_b: Vector2, weight: float) -> Vector2
    func cubic_interpolate_in_time(b: Vector2, pre_a: Vector2, post_b: Vector2, weight: float, b_t: float, pre_a_t: float, post_b_t: float) -> Vector2
    func direction_to(to: Vector2) -> Vector2
    func distance_squared_to(to: Vector2) -> float
    func distance_to(to: Vector2) -> float
    func dot(with: Vector2) -> float
    func floor() -> Vector2
    func is_equal_approx(to: Vector2) -> bool
    func is_finite() -> bool
    func is_normalized() -> bool
    func is_zero_approx() -> bool
    func length() -> float
    func length_squared() -> float
    func lerp(to: Vector2, weight: float) -> Vector2
    func limit_length(length: float = 1.0) -> Vector2
    func max_axis_index() -> int
    func min_axis_index() -> int
    func move_toward(to: Vector2, delta: float) -> Vector2
    func normalized() -> Vector2
    func orthogonal() -> Vector2
    func posmod(mod: float) -> Vector2
    func posmodv(modv: Vector2) -> Vector2
    func project(b: Vector2) -> Vector2
    func reflect(n: Vector2) -> Vector2
    func rotated(angle: float) -> Vector2
    func round() -> Vector2
    func sign() -> Vector2
    func slerp(to: Vector2, weight: float) -> Vector2
    func slide(n: Vector2) -> Vector2
    func snapped(step: Vector2) -> Vector2

# Vector2i

  func Vector2i() -> Vector2i
  func Vector2i(from: Vector2) -> Vector2i
  func Vector2i(x: int, y: int) -> Vector2i

  class Vector2i:

    const AXIS_X = 0
    const AXIS_Y = 1
    const DOWN = Vector2i(0, 1)
    const LEFT = Vector2i(-1, 0)
    const MAX = Vector2i(2147483647, 2147483647)
    const MIN = Vector2i(-2147483648, -2147483648)
    const ONE = Vector2i(1, 1)
    const RIGHT = Vector2i(1, 0)
    const UP = Vector2i(0, -1)
    const ZERO = Vector2i(0, 0)

    var x: int = 0
    var y: int = 0

    func abs() -> Vector2i
    func aspect() -> float
    func clamp(min: Vector2i, max: Vector2i) -> Vector2i
    func length() -> float
    func length_squared() -> int
    func max_axis_index() -> int
    func min_axis_index() -> int
    func sign() -> Vector2i
    func snapped(step: Vector2i) -> Vector2i

# Vector3

  func Vector3() -> Vector3
  func Vector3(from: Vector3i) -> Vector3
  func Vector3(x: float, y: float, z: float) -> Vector3

  class Vector3:

    const AXIS_X = 0
    const AXIS_Y = 1
    const AXIS_Z = 2
    const BACK = Vector3(0, 0, 1)
    const DOWN = Vector3(0, -1, 0)
    const FORWARD = Vector3(0, 0, -1)
    const INF = Vector3(INF, INF, INF)
    const LEFT = Vector3(-1, 0, 0)
    const MODEL_BOTTOM = Vector3(0, -1, 0)
    const MODEL_FRONT = Vector3(0, 0, 1)
    const MODEL_LEFT = Vector3(1, 0, 0)
    const MODEL_REAR = Vector3(0, 0, -1)
    const MODEL_RIGHT = Vector3(-1, 0, 0)
    const MODEL_TOP = Vector3(0, 1, 0)
    const ONE = Vector3(1, 1, 1)
    const RIGHT = Vector3(1, 0, 0)
    const UP = Vector3(0, 1, 0)
    const ZERO = Vector3(0, 0, 0)

    static func octahedron_decode(uv: Vector2) -> Vector3

    var x: float = 0.0
    var y: float = 0.0
    var z: float = 0.0

    func abs() -> Vector3
    func angle_to(to: Vector3) -> float
    func bezier_derivative(control_1: Vector3, control_2: Vector3, end: Vector3, t: float) -> Vector3
    func bezier_interpolate(control_1: Vector3, control_2: Vector3, end: Vector3, t: float) -> Vector3
    func bounce(n: Vector3) -> Vector3
    func ceil() -> Vector3
    func clamp(min: Vector3, max: Vector3) -> Vector3
    func cross(with: Vector3) -> Vector3
    func cubic_interpolate(b: Vector3, pre_a: Vector3, post_b: Vector3, weight: float) -> Vector3
    func cubic_interpolate_in_time(b: Vector3, pre_a: Vector3, post_b: Vector3, weight: float, b_t: float, pre_a_t: float, post_b_t: float) -> Vector3
    func direction_to(to: Vector3) -> Vector3
    func distance_squared_to(to: Vector3) -> float
    func distance_to(to: Vector3) -> float
    func dot(with: Vector3) -> float
    func floor() -> Vector3
    func inverse() -> Vector3
    func is_equal_approx(to: Vector3) -> bool
    func is_finite() -> bool
    func is_normalized() -> bool
    func is_zero_approx() -> bool
    func length() -> float
    func length_squared() -> float
    func lerp(to: Vector3, weight: float) -> Vector3
    func limit_length(length: float = 1.0) -> Vector3
    func max_axis_index() -> int
    func min_axis_index() -> int
    func move_toward(to: Vector3, delta: float) -> Vector3
    func normalized() -> Vector3
    func octahedron_encode() -> Vector2
    func outer(with: Vector3) -> Basis
    func posmod(mod: float) -> Vector3
    func posmodv(modv: Vector3) -> Vector3
    func project(b: Vector3) -> Vector3
    func reflect(n: Vector3) -> Vector3
    func rotated(axis: Vector3, angle: float) -> Vector3
    func round() -> Vector3
    func sign() -> Vector3
    func signed_angle_to(to: Vector3, axis: Vector3) -> float
    func slerp(to: Vector3, weight: float) -> Vector3
    func slide(n: Vector3) -> Vector3
    func snapped(step: Vector3) -> Vector3

# Vector3i

  func Vector3i() -> Vector3i
  func Vector3i(from: Vector3) -> Vector3i
  func Vector3i(x: int, y: int, z: int) -> Vector3i

  class Vector3i:

    const AXIS_X = 0
    const AXIS_Y = 1
    const AXIS_Z = 2
    const BACK = Vector3i(0, 0, 1)
    const DOWN = Vector3i(0, -1, 0)
    const FORWARD = Vector3i(0, 0, -1)
    const LEFT = Vector3i(-1, 0, 0)
    const MAX = Vector3i(2147483647, 2147483647, 2147483647)
    const MIN = Vector3i(-2147483648, -2147483648, -2147483648)
    const ONE = Vector3i(1, 1, 1)
    const RIGHT = Vector3i(1, 0, 0)
    const UP = Vector3i(0, 1, 0)
    const ZERO = Vector3i(0, 0, 0)

    var x: int = 0
    var y: int = 0
    var z: int = 0

    func abs() -> Vector3i
    func clamp(min: Vector3i, max: Vector3i) -> Vector3i
    func length() -> float
    func length_squared() -> int
    func max_axis_index() -> int
    func min_axis_index() -> int
    func sign() -> Vector3i
    func snapped(step: Vector3i) -> Vector3i

# Vector4

  func Vector4() -> Vector4
  func Vector4(from: Vector4i) -> Vector4
  func Vector4(x: float, y: float, z: float, w: float) -> Vector4

  class Vector4:

    const AXIS_W = 3
    const AXIS_X = 0
    const AXIS_Y = 1
    const AXIS_Z = 2
    const INF = Vector4(INF, INF, INF, INF)
    const ONE = Vector4(1, 1, 1, 1)
    const ZERO = Vector4(0, 0, 0, 0)

    var w: float = 0.0
    var x: float = 0.0
    var y: float = 0.0
    var z: float = 0.0

    func abs() -> Vector4
    func ceil() -> Vector4
    func clamp(min: Vector4, max: Vector4) -> Vector4
    func cubic_interpolate(b: Vector4, pre_a: Vector4, post_b: Vector4, weight: float) -> Vector4
    func cubic_interpolate_in_time(b: Vector4, pre_a: Vector4, post_b: Vector4, weight: float, b_t: float, pre_a_t: float, post_b_t: float) -> Vector4
    func direction_to(to: Vector4) -> Vector4
    func distance_squared_to(to: Vector4) -> float
    func distance_to(to: Vector4) -> float
    func dot(with: Vector4) -> float
    func floor() -> Vector4
    func inverse() -> Vector4
    func is_equal_approx(to: Vector4) -> bool
    func is_finite() -> bool
    func is_normalized() -> bool
    func is_zero_approx() -> bool
    func length() -> float
    func length_squared() -> float
    func lerp(to: Vector4, weight: float) -> Vector4
    func max_axis_index() -> int
    func min_axis_index() -> int
    func normalized() -> Vector4
    func posmod(mod: float) -> Vector4
    func posmodv(modv: Vector4) -> Vector4
    func round() -> Vector4
    func sign() -> Vector4
    func snapped(step: Vector4) -> Vector4

# Vector4i

  func Vector4i() -> Vector4i
  func Vector4i(from: Vector4) -> Vector4i
  func Vector4i(x: int, y: int, z: int, w: int) -> Vector4i

  class Vector4i:

    const AXIS_W = 3
    const AXIS_X = 0
    const AXIS_Y = 1
    const AXIS_Z = 2
    const MAX = Vector4i(2147483647, 2147483647, 2147483647, 2147483647)
    const MIN = Vector4i(-2147483648, -2147483648, -2147483648, -2147483648)
    const ONE = Vector4i(1, 1, 1, 1)
    const ZERO = Vector4i(0, 0, 0, 0)

    var w: int = 0
    var x: int = 0
    var y: int = 0
    var z: int = 0

    func abs() -> Vector4i
    func clamp(min: Vector4i, max: Vector4i) -> Vector4i
    func length() -> float
    func length_squared() -> int
    func max_axis_index() -> int
    func min_axis_index() -> int
    func sign() -> Vector4i
    func snapped(step: Vector4i) -> Vector4i

# Object

  class Object:

    enum ConnectFlags {
      CONNECT_DEFERRED = 1,
      CONNECT_PERSIST = 2,
      CONNECT_ONE_SHOT = 4,
      CONNECT_REFERENCE_COUNTED = 8,
    }

    enum Notification {
      NOTIFICATION_POSTINITIALIZE = 0,
      NOTIFICATION_PREDELETE = 1,
    }

    static func new(...) -> Object

    signal property_list_changed()
    signal script_changed()

    func add_user_signal(signal: String, arguments: Array = [])
    func call(method: StringName, ...) -> Variant
    func call_deferred(method: StringName, ...) -> Variant
    func callv(method: StringName, arg_array: Array) -> Variant
    func can_translate_messages() -> bool
    func cancel_free()
    func connect(signal: StringName, callable: Callable, flags: enum ConnectFlags = 0) -> enum Error
    func disconnect(signal: StringName, callable: Callable)
    func emit_signal(signal: StringName, ...) -> enum Error
    func free()
    func get(property: StringName) -> Variant
    func get_class() -> String
    func get_incoming_connections() -> Array[Dictionary]
    func get_indexed(property_path: NodePath) -> Variant
    func get_instance_id() -> int
    func get_meta(name: StringName, default: Variant = null) -> Variant
    func get_meta_list() -> Array[StringName]
    func get_method_list() -> Array[Dictionary]
    func get_property_list() -> Array[Dictionary]
    func get_script() -> Variant
    func get_signal_connection_list(signal: StringName) -> Array[Dictionary]
    func get_signal_list() -> Array[Dictionary]
    func has_meta(name: StringName) -> bool
    func has_method(method: StringName) -> bool
    func has_signal(signal: StringName) -> bool
    func has_user_signal(signal: StringName) -> bool
    func is_blocking_signals() -> bool
    func is_class(class: String) -> bool
    func is_connected(signal: StringName, callable: Callable) -> bool
    func is_queued_for_deletion() -> bool
    func notification(what: enum Notification, reversed: bool = false)
    func notify_property_list_changed()
    func property_can_revert(property: StringName) -> bool
    func property_get_revert(property: StringName) -> Variant
    func remove_meta(name: StringName)
    func set(property: StringName, value: Variant)
    func set_block_signals(enable: bool)
    func set_deferred(property: StringName, value: Variant)
    func set_indexed(property_path: NodePath, value: Variant)
    func set_message_translation(enable: bool)
    func set_meta(name: StringName, value: Variant)
    func set_script(script: Variant)
    func to_string() -> String
    func tr(message: StringName, context: StringName = "") -> String
    func tr_n(message: StringName, plural_message: StringName, n: int, context: StringName = "") -> String

    func _get(property: StringName) -> Variant
    func _get_property_list() -> Array[Dictionary]
    func _init()
    func _notification(what: enum Notification)
    func _property_can_revert(property: StringName) -> bool
    func _property_get_revert(property: StringName) -> Variant
    func _set(property: StringName, value: Variant) -> bool
    func _to_string() -> String
    func _validate_property(property: Dictionary)

# Object < Node

  class Node extends Object:

    enum DuplicateFlags {
      DUPLICATE_SIGNALS = 1,
      DUPLICATE_GROUPS = 2,
      DUPLICATE_SCRIPTS = 4,
      DUPLICATE_USE_INSTANTIATION = 8,
    }

    enum InternalMode {
      INTERNAL_MODE_DISABLED = 0,
      INTERNAL_MODE_FRONT = 1,
      INTERNAL_MODE_BACK = 2,
    }

    enum Notification {
      NOTIFICATION_ENTER_TREE = 10,
      NOTIFICATION_EXIT_TREE = 11,
      NOTIFICATION_MOVED_IN_PARENT = 12,
      NOTIFICATION_READY = 13,
      NOTIFICATION_PAUSED = 14,
      NOTIFICATION_UNPAUSED = 15,
      NOTIFICATION_PHYSICS_PROCESS = 16,
      NOTIFICATION_PROCESS = 17,
      NOTIFICATION_PARENTED = 18,
      NOTIFICATION_UNPARENTED = 19,
      NOTIFICATION_SCENE_INSTANTIATED = 20,
      NOTIFICATION_DRAG_BEGIN = 21,
      NOTIFICATION_DRAG_END = 22,
      NOTIFICATION_PATH_RENAMED = 23,
      NOTIFICATION_CHILD_ORDER_CHANGED = 24,
      NOTIFICATION_INTERNAL_PROCESS = 25,
      NOTIFICATION_INTERNAL_PHYSICS_PROCESS = 26,
      NOTIFICATION_POST_ENTER_TREE = 27,
      NOTIFICATION_DISABLED = 28,
      NOTIFICATION_ENABLED = 29,
      NOTIFICATION_WM_MOUSE_ENTER = 1002,
      NOTIFICATION_WM_MOUSE_EXIT = 1003,
      NOTIFICATION_WM_WINDOW_FOCUS_IN = 1004,
      NOTIFICATION_WM_WINDOW_FOCUS_OUT = 1005,
      NOTIFICATION_WM_CLOSE_REQUEST = 1006,
      NOTIFICATION_WM_GO_BACK_REQUEST = 1007,
      NOTIFICATION_WM_SIZE_CHANGED = 1008,
      NOTIFICATION_WM_DPI_CHANGE = 1009,
      NOTIFICATION_VP_MOUSE_ENTER = 1010,
      NOTIFICATION_VP_MOUSE_EXIT = 1011,
      NOTIFICATION_OS_MEMORY_WARNING = 2009,
      NOTIFICATION_TRANSLATION_CHANGED = 2010,
      NOTIFICATION_WM_ABOUT = 2011,
      NOTIFICATION_CRASH = 2012,
      NOTIFICATION_OS_IME_UPDATE = 2013,
      NOTIFICATION_APPLICATION_RESUMED = 2014,
      NOTIFICATION_APPLICATION_PAUSED = 2015,
      NOTIFICATION_APPLICATION_FOCUS_IN = 2016,
      NOTIFICATION_APPLICATION_FOCUS_OUT = 2017,
      NOTIFICATION_TEXT_SERVER_CHANGED = 2018,
      NOTIFICATION_EDITOR_PRE_SAVE = 9001,
      NOTIFICATION_EDITOR_POST_SAVE = 9002,
    }

    enum ProcessMode {
      PROCESS_MODE_INHERIT = 0,
      PROCESS_MODE_PAUSABLE = 1,
      PROCESS_MODE_WHEN_PAUSED = 2,
      PROCESS_MODE_ALWAYS = 3,
      PROCESS_MODE_DISABLED = 4,
    }

    enum ProcessThreadGroup {
      PROCESS_THREAD_GROUP_INHERIT = 0,
      PROCESS_THREAD_GROUP_MAIN_THREAD = 1,
      PROCESS_THREAD_GROUP_SUB_THREAD = 2,
    }

    enum ProcessThreadMessages {
      FLAG_PROCESS_THREAD_MESSAGES = 1,
      FLAG_PROCESS_THREAD_MESSAGES_PHYSICS = 2,
      FLAG_PROCESS_THREAD_MESSAGES_ALL = 3,
    }

    static func print_orphan_nodes()

    var editor_description: String = ""
    var multiplayer: MultiplayerAPI
    var name: StringName
    var owner: Node
    var process_mode: enum ProcessMode = PROCESS_MODE_INHERIT
    var process_physics_priority: int = 0
    var process_priority: int = 0
    var process_thread_group: enum ProcessThreadGroup = PROCESS_THREAD_GROUP_INHERIT
    var process_thread_group_order: int
    var process_thread_messages: enum ProcessThreadMessages
    var scene_file_path: String
    var unique_name_in_owner: bool = false

    signal child_entered_tree(node: Node)
    signal child_exiting_tree(node: Node)
    signal child_order_changed()
    signal ready()
    signal renamed()
    signal replacing_by(node: Node)
    signal tree_entered()
    signal tree_exited()
    signal tree_exiting()

    func add_child(node: Node, force_readable_name: bool = false, internal: enum InternalMode = INTERNAL_MODE_DISABLED)
    func add_sibling(sibling: Node, force_readable_name: bool = false)
    func add_to_group(group: StringName, persistent: bool = false)
    func call_deferred_thread_group(method: StringName, ...) -> Variant
    func call_thread_safe(method: StringName, ...) -> Variant
    func can_process() -> bool
    func create_tween() -> Tween
    func duplicate(flags: enum DuplicateFlags = DUPLICATE_SIGNALS & DUPLICATE_GROUPS & DUPLICATE_SCRIPTS & DUPLICATE_USE_INSTANTIATION) -> Node
    func find_child(pattern: String, recursive: bool = true, owned: bool = true) -> Node
    func find_children(pattern: String, type: String = "", recursive: bool = true, owned: bool = true) -> Array[Node]
    func find_parent(pattern: String) -> Node
    func get_child(idx: int, include_internal: bool = false) -> Node
    func get_child_count(include_internal: bool = false) -> int
    func get_children(include_internal: bool = false) -> Array[Node]
    func get_groups() -> Array[StringName]
    func get_index(include_internal: bool = false) -> int
    func get_last_exclusive_window() -> Window
    func get_multiplayer_authority() -> int
    func get_node(path: NodePath) -> Node
    func get_node_and_resource(path: NodePath) -> Array
    func get_node_or_null(path: NodePath) -> Node
    func get_parent() -> Node
    func get_path() -> NodePath
    func get_path_to(node: Node, use_unique_path: bool = false) -> NodePath
    func get_physics_process_delta_time() -> float
    func get_process_delta_time() -> float
    func get_scene_instance_load_placeholder() -> bool
    func get_tree() -> SceneTree
    func get_tree_string() -> String
    func get_tree_string_pretty() -> String
    func get_viewport() -> Viewport
    func get_window() -> Window
    func has_node(path: NodePath) -> bool
    func has_node_and_resource(path: NodePath) -> bool
    func is_ancestor_of(node: Node) -> bool
    func is_displayed_folded() -> bool
    func is_editable_instance(node: Node) -> bool
    func is_greater_than(node: Node) -> bool
    func is_in_group(group: StringName) -> bool
    func is_inside_tree() -> bool
    func is_multiplayer_authority() -> bool
    func is_node_ready() -> bool
    func is_physics_processing() -> bool
    func is_physics_processing_internal() -> bool
    func is_processing() -> bool
    func is_processing_input() -> bool
    func is_processing_internal() -> bool
    func is_processing_shortcut_input() -> bool
    func is_processing_unhandled_input() -> bool
    func is_processing_unhandled_key_input() -> bool
    func move_child(child_node: Node, to_index: int)
    func notify_deferred_thread_group(what: enum Notification)
    func notify_thread_safe(what: enum Notification)
    func print_tree()
    func print_tree_pretty()
    func propagate_call(method: StringName, args: Array = [], parent_first: bool = false)
    func propagate_notification(what: enum Notification)
    func queue_free()
    func remove_child(node: Node)
    func remove_from_group(group: StringName)
    func reparent(new_parent: Node, keep_global_transform: bool = true)
    func replace_by(node: Node, keep_groups: bool = false)
    func request_ready()
    func rpc(method: StringName, ...) -> enum Error
    func rpc_config(method: StringName, config: Variant)
    func rpc_id(peer_id: int, method: StringName, ...) -> enum Error
    func set_deferred_thread_group(property: StringName, value: Variant)
    func set_display_folded(fold: bool)
    func set_editable_instance(node: Node, is_editable: bool)
    func set_multiplayer_authority(id: int, recursive: bool = true)
    func set_physics_process(enable: bool)
    func set_physics_process_internal(enable: bool)
    func set_process(enable: bool)
    func set_process_input(enable: bool)
    func set_process_internal(enable: bool)
    func set_process_shortcut_input(enable: bool)
    func set_process_unhandled_input(enable: bool)
    func set_process_unhandled_key_input(enable: bool)
    func set_scene_instance_load_placeholder(load_placeholder: bool)
    func set_thread_safe(property: StringName, value: Variant)
    func update_configuration_warnings()

    func _enter_tree()
    func _exit_tree()
    func _get_configuration_warnings() -> PackedStringArray
    func _input(event: InputEvent)
    func _physics_process(delta: float)
    func _process(delta: float)
    func _ready()
    func _shortcut_input(event: InputEvent)
    func _unhandled_input(event: InputEvent)
    func _unhandled_key_input(event: InputEvent)

# Object < Node < CanvasItem (abstract)

  class CanvasItem extends Node:

    enum ClipChildrenMode {
      CLIP_CHILDREN_DISABLED = 0,
      CLIP_CHILDREN_ONLY = 1,
      CLIP_CHILDREN_AND_DRAW = 2,
      CLIP_CHILDREN_MAX = 3,
    }

    enum Notification {
      NOTIFICATION_DRAW = 30,
      NOTIFICATION_VISIBILITY_CHANGED = 31,
      NOTIFICATION_ENTER_CANVAS = 32,
      NOTIFICATION_EXIT_CANVAS = 33,
      NOTIFICATION_LOCAL_TRANSFORM_CHANGED = 35,
      NOTIFICATION_WORLD_2D_CHANGED = 36,
      NOTIFICATION_TRANSFORM_CHANGED = 2000,
    }

    enum TextureFilter {
      TEXTURE_FILTER_PARENT_NODE = 0,
      TEXTURE_FILTER_NEAREST = 1,
      TEXTURE_FILTER_LINEAR = 2,
      TEXTURE_FILTER_NEAREST_WITH_MIPMAPS = 3,
      TEXTURE_FILTER_LINEAR_WITH_MIPMAPS = 4,
      TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC = 5,
      TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC = 6,
      TEXTURE_FILTER_MAX = 7,
    }

    enum TextureRepeat {
      TEXTURE_REPEAT_PARENT_NODE = 0,
      TEXTURE_REPEAT_DISABLED = 1,
      TEXTURE_REPEAT_ENABLED = 2,
      TEXTURE_REPEAT_MIRROR = 3,
      TEXTURE_REPEAT_MAX = 4,
    }

    var clip_children: enum ClipChildrenMode = CLIP_CHILDREN_DISABLED
    var light_mask: int = 1
    var material: Material
    var modulate: Color = Color(1, 1, 1, 1)
    var self_modulate: Color = Color(1, 1, 1, 1)
    var show_behind_parent: bool = false
    var texture_filter: enum TextureFilter = TEXTURE_FILTER_PARENT_NODE
    var texture_repeat: enum TextureRepeat = TEXTURE_REPEAT_PARENT_NODE
    var top_level: bool = false
    var use_parent_material: bool = false
    var visibility_layer: int = 1
    var visible: bool = true
    var y_sort_enabled: bool = false
    var z_as_relative: bool = true
    var z_index: int = 0

    signal draw()
    signal hidden()
    signal item_rect_changed()
    signal visibility_changed()

    func draw_animation_slice(animation_length: float, slice_begin: float, slice_end: float, offset: float = 0.0)
    func draw_arc(center: Vector2, radius: float, start_angle: float, end_angle: float, point_count: int, color: Color, width: float = -1.0, antialiased: bool = false)
    func draw_char(font: Font, pos: Vector2, char: String, font_size: int = 16, modulate: Color = Color(1, 1, 1, 1))
    func draw_char_outline(font: Font, pos: Vector2, char: String, font_size: int = 16, size: int = -1, modulate: Color = Color(1, 1, 1, 1))
    func draw_circle(position: Vector2, radius: float, color: Color)
    func draw_colored_polygon(points: PackedVector2Array, color: Color, uvs: PackedVector2Array = PackedVector2Array(), texture: Texture2D = null)
    func draw_dashed_line(from: Vector2, to: Vector2, color: Color, width: float = -1.0, dash: float = 2.0, aligned: bool = true)
    func draw_end_animation()
    func draw_lcd_texture_rect_region(texture: Texture2D, rect: Rect2, src_rect: Rect2, modulate: Color = Color(1, 1, 1, 1))
    func draw_line(from: Vector2, to: Vector2, color: Color, width: float = -1.0, antialiased: bool = false)
    func draw_mesh(mesh: Mesh, texture: Texture2D, transform: Transform2D = Transform2D(Vector2(1, 0), Vector2(0, 1), Vector2(0, 0)), modulate: Color = Color(1, 1, 1, 1))
    func draw_msdf_texture_rect_region(texture: Texture2D, rect: Rect2, src_rect: Rect2, modulate: Color = Color(1, 1, 1, 1), outline: float = 0.0, pixel_range: float = 4.0, scale: float = 1.0)
    func draw_multiline(points: PackedVector2Array, color: Color, width: float = -1.0)
    func draw_multiline_colors(points: PackedVector2Array, colors: PackedColorArray, width: float = -1.0)
    func draw_multiline_string(font: Font, pos: Vector2, text: String, alignment: enum HorizontalAlignment = HORIZONTAL_ALIGNMENT_LEFT, width: float = -1, font_size: int = 16, max_lines: int = -1, modulate: Color = Color(1, 1, 1, 1), brk_flags: enum TextServer.LineBreakFlag = TextServer.BREAK_MANDATORY & TextServer.BREAK_WORD_BOUND, justification_flags: enum TextServer.JustificationFlag = TextServer.JUSTIFICATION_KASHIDA & TextServer.JUSTIFICATION_WORD_BOUND, direction: enum TextServer.Direction = TextServer.DIRECTION_AUTO, orientation: enum TextServer.Orientation = TextServer.ORIENTATION_HORIZONTAL)
    func draw_multiline_string_outline(font: Font, pos: Vector2, text: String, alignment: enum HorizontalAlignment = HORIZONTAL_ALIGNMENT_LEFT, width: float = -1, font_size: int = 16, max_lines: int = -1, size: int = 1, modulate: Color = Color(1, 1, 1, 1), brk_flags: enum TextServer.LineBreakFlag = TextServer.BREAK_MANDATORY & TextServer.BREAK_WORD_BOUND, justification_flags: enum TextServer.JustificationFlag = TextServer.JUSTIFICATION_KASHIDA & TextServer.JUSTIFICATION_WORD_BOUND, direction: enum TextServer.Direction = TextServer.DIRECTION_AUTO, orientation: enum TextServer.Orientation = TextServer.ORIENTATION_HORIZONTAL)
    func draw_multimesh(multimesh: MultiMesh, texture: Texture2D)
    func draw_polygon(points: PackedVector2Array, colors: PackedColorArray, uvs: PackedVector2Array = PackedVector2Array(), texture: Texture2D = null)
    func draw_polyline(points: PackedVector2Array, color: Color, width: float = -1.0, antialiased: bool = false)
    func draw_polyline_colors(points: PackedVector2Array, colors: PackedColorArray, width: float = -1.0, antialiased: bool = false)
    func draw_primitive(points: PackedVector2Array, colors: PackedColorArray, uvs: PackedVector2Array, texture: Texture2D = null)
    func draw_rect(rect: Rect2, color: Color, filled: bool = true, width: float = -1.0)
    func draw_set_transform(position: Vector2, rotation: float = 0.0, scale: Vector2 = Vector2(1, 1))
    func draw_set_transform_matrix(xform: Transform2D)
    func draw_string(font: Font, pos: Vector2, text: String, alignment: enum HorizontalAlignment = HORIZONTAL_ALIGNMENT_LEFT, width: float = -1, font_size: int = 16, modulate: Color = Color(1, 1, 1, 1), justification_flags: enum TextServer.JustificationFlag = TextServer.JUSTIFICATION_KASHIDA & TextServer.JUSTIFICATION_WORD_BOUND, direction: enum TextServer.Direction = TextServer.DIRECTION_AUTO, orientation: enum TextServer.Orientation = TextServer.ORIENTATION_HORIZONTAL)
    func draw_string_outline(font: Font, pos: Vector2, text: String, alignment: enum HorizontalAlignment = HORIZONTAL_ALIGNMENT_LEFT, width: float = -1, font_size: int = 16, size: int = 1, modulate: Color = Color(1, 1, 1, 1), justification_flags: enum TextServer.JustificationFlag = TextServer.JUSTIFICATION_KASHIDA & TextServer.JUSTIFICATION_WORD_BOUND, direction: enum TextServer.Direction = TextServer.DIRECTION_AUTO, orientation: enum TextServer.Orientation = TextServer.ORIENTATION_HORIZONTAL)
    func draw_style_box(style_box: StyleBox, rect: Rect2)
    func draw_texture(texture: Texture2D, position: Vector2, modulate: Color = Color(1, 1, 1, 1))
    func draw_texture_rect(texture: Texture2D, rect: Rect2, tile: bool, modulate: Color = Color(1, 1, 1, 1), transpose: bool = false)
    func draw_texture_rect_region(texture: Texture2D, rect: Rect2, src_rect: Rect2, modulate: Color = Color(1, 1, 1, 1), transpose: bool = false, clip_uv: bool = true)
    func force_update_transform()
    func get_canvas() -> RID
    func get_canvas_item() -> RID
    func get_canvas_transform() -> Transform2D
    func get_global_mouse_position() -> Vector2
    func get_global_transform() -> Transform2D
    func get_global_transform_with_canvas() -> Transform2D
    func get_local_mouse_position() -> Vector2
    func get_screen_transform() -> Transform2D
    func get_transform() -> Transform2D
    func get_viewport_rect() -> Rect2
    func get_viewport_transform() -> Transform2D
    func get_visibility_layer_bit(layer: int) -> bool
    func get_world_2d() -> World2D
    func hide()
    func is_local_transform_notification_enabled() -> bool
    func is_transform_notification_enabled() -> bool
    func is_visible_in_tree() -> bool
    func make_canvas_position_local(screen_point: Vector2) -> Vector2
    func make_input_local(event: InputEvent) -> InputEvent
    func move_to_front()
    func queue_redraw()
    func set_notify_local_transform(enable: bool)
    func set_notify_transform(enable: bool)
    func set_visibility_layer_bit(layer: int, enabled: bool)
    func show()

    func _draw()

# Object < Node < CanvasItem < Control

  class Control extends CanvasItem:

    enum Anchor {
      ANCHOR_BEGIN = 0,
      ANCHOR_END = 1,
    }

    enum CursorShape {
      CURSOR_ARROW = 0,
      CURSOR_IBEAM = 1,
      CURSOR_POINTING_HAND = 2,
      CURSOR_CROSS = 3,
      CURSOR_WAIT = 4,
      CURSOR_BUSY = 5,
      CURSOR_DRAG = 6,
      CURSOR_CAN_DROP = 7,
      CURSOR_FORBIDDEN = 8,
      CURSOR_VSIZE = 9,
      CURSOR_HSIZE = 10,
      CURSOR_BDIAGSIZE = 11,
      CURSOR_FDIAGSIZE = 12,
      CURSOR_MOVE = 13,
      CURSOR_VSPLIT = 14,
      CURSOR_HSPLIT = 15,
      CURSOR_HELP = 16,
    }

    enum FocusMode {
      FOCUS_NONE = 0,
      FOCUS_CLICK = 1,
      FOCUS_ALL = 2,
    }

    enum GrowDirection {
      GROW_DIRECTION_BEGIN = 0,
      GROW_DIRECTION_END = 1,
      GROW_DIRECTION_BOTH = 2,
    }

    enum LayoutDirection {
      LAYOUT_DIRECTION_INHERITED = 0,
      LAYOUT_DIRECTION_LOCALE = 1,
      LAYOUT_DIRECTION_LTR = 2,
      LAYOUT_DIRECTION_RTL = 3,
    }

    enum LayoutPreset {
      PRESET_TOP_LEFT = 0,
      PRESET_TOP_RIGHT = 1,
      PRESET_BOTTOM_LEFT = 2,
      PRESET_BOTTOM_RIGHT = 3,
      PRESET_CENTER_LEFT = 4,
      PRESET_CENTER_TOP = 5,
      PRESET_CENTER_RIGHT = 6,
      PRESET_CENTER_BOTTOM = 7,
      PRESET_CENTER = 8,
      PRESET_LEFT_WIDE = 9,
      PRESET_TOP_WIDE = 10,
      PRESET_RIGHT_WIDE = 11,
      PRESET_BOTTOM_WIDE = 12,
      PRESET_VCENTER_WIDE = 13,
      PRESET_HCENTER_WIDE = 14,
      PRESET_FULL_RECT = 15,
    }

    enum LayoutPresetMode {
      PRESET_MODE_MINSIZE = 0,
      PRESET_MODE_KEEP_WIDTH = 1,
      PRESET_MODE_KEEP_HEIGHT = 2,
      PRESET_MODE_KEEP_SIZE = 3,
    }

    enum MouseFilter {
      MOUSE_FILTER_STOP = 0,
      MOUSE_FILTER_PASS = 1,
      MOUSE_FILTER_IGNORE = 2,
    }

    enum Notification {
      NOTIFICATION_RESIZED = 40,
      NOTIFICATION_MOUSE_ENTER = 41,
      NOTIFICATION_MOUSE_EXIT = 42,
      NOTIFICATION_FOCUS_ENTER = 43,
      NOTIFICATION_FOCUS_EXIT = 44,
      NOTIFICATION_THEME_CHANGED = 45,
      NOTIFICATION_SCROLL_BEGIN = 47,
      NOTIFICATION_SCROLL_END = 48,
      NOTIFICATION_LAYOUT_DIRECTION_CHANGED = 49,
      NOTIFICATION_MOUSE_ENTER_SELF = 60,
      NOTIFICATION_MOUSE_EXIT_SELF = 61,
    }

    enum SizeFlags {
      SIZE_SHRINK_BEGIN = 0,
      SIZE_FILL = 1,
      SIZE_EXPAND = 2,
      SIZE_EXPAND_FILL = 3,
      SIZE_SHRINK_CENTER = 4,
      SIZE_SHRINK_END = 8,
    }

    enum TextDirection {
      TEXT_DIRECTION_AUTO = 0,
      TEXT_DIRECTION_LTR = 1,
      TEXT_DIRECTION_RTL = 2,
      TEXT_DIRECTION_INHERITED = 3,
    }

    var anchor_bottom: float = 0.0
    var anchor_left: float = 0.0
    var anchor_right: float = 0.0
    var anchor_top: float = 0.0
    var auto_translate: bool = true
    var clip_contents: bool = false
    var custom_minimum_size: Vector2 = Vector2(0, 0)
    var focus_mode: enum FocusMode = FOCUS_NONE
    var focus_neighbor_bottom: NodePath = NodePath("")
    var focus_neighbor_left: NodePath = NodePath("")
    var focus_neighbor_right: NodePath = NodePath("")
    var focus_neighbor_top: NodePath = NodePath("")
    var focus_next: NodePath = NodePath("")
    var focus_previous: NodePath = NodePath("")
    var global_position: Vector2
    var grow_horizontal: enum GrowDirection = GROW_DIRECTION_END
    var grow_vertical: enum GrowDirection = GROW_DIRECTION_END
    var layout_direction: enum LayoutDirection = LAYOUT_DIRECTION_INHERITED
    var localize_numeral_system: bool = true
    var mouse_default_cursor_shape: enum CursorShape = CURSOR_ARROW
    var mouse_filter: enum MouseFilter = MOUSE_FILTER_STOP
    var mouse_force_pass_scroll_events: bool = true
    var offset_bottom: float = 0.0
    var offset_left: float = 0.0
    var offset_right: float = 0.0
    var offset_top: float = 0.0
    var pivot_offset: Vector2 = Vector2(0, 0)
    var position: Vector2 = Vector2(0, 0)
    var rotation: float = 0.0
    var rotation_degrees: float
    var scale: Vector2 = Vector2(1, 1)
    var shortcut_context: Node
    var size: Vector2 = Vector2(0, 0)
    var size_flags_horizontal: enum SizeFlags = SIZE_FILL
    var size_flags_stretch_ratio: float = 1.0
    var size_flags_vertical: enum SizeFlags = SIZE_FILL
    var theme: Theme
    var theme_type_variation: StringName = ""
    var tooltip_text: String = ""

    signal focus_entered()
    signal focus_exited()
    signal gui_input(event: InputEvent)
    signal minimum_size_changed()
    signal mouse_entered()
    signal mouse_exited()
    signal resized()
    signal size_flags_changed()
    signal theme_changed()

    func accept_event()
    func add_theme_color_override(name: StringName, color: Color)
    func add_theme_constant_override(name: StringName, constant: int)
    func add_theme_font_override(name: StringName, font: Font)
    func add_theme_font_size_override(name: StringName, font_size: int)
    func add_theme_icon_override(name: StringName, texture: Texture2D)
    func add_theme_stylebox_override(name: StringName, stylebox: StyleBox)
    func begin_bulk_theme_override()
    func end_bulk_theme_override()
    func find_next_valid_focus() -> Control
    func find_prev_valid_focus() -> Control
    func find_valid_focus_neighbor(side: enum Side) -> Control
    func force_drag(data: Variant, preview: Control)
    func get_anchor(side: enum Side) -> float
    func get_begin() -> Vector2
    func get_combined_minimum_size() -> Vector2
    func get_cursor_shape(position: Vector2 = Vector2(0, 0)) -> enum CursorShape
    func get_end() -> Vector2
    func get_focus_neighbor(side: enum Side) -> NodePath
    func get_global_rect() -> Rect2
    func get_minimum_size() -> Vector2
    func get_offset(offset: enum Side) -> float
    func get_parent_area_size() -> Vector2
    func get_parent_control() -> Control
    func get_rect() -> Rect2
    func get_screen_position() -> Vector2
    func get_theme_color(name: StringName, theme_type: StringName = "") -> Color
    func get_theme_constant(name: StringName, theme_type: StringName = "") -> int
    func get_theme_default_base_scale() -> float
    func get_theme_default_font() -> Font
    func get_theme_default_font_size() -> int
    func get_theme_font(name: StringName, theme_type: StringName = "") -> Font
    func get_theme_font_size(name: StringName, theme_type: StringName = "") -> int
    func get_theme_icon(name: StringName, theme_type: StringName = "") -> Texture2D
    func get_theme_stylebox(name: StringName, theme_type: StringName = "") -> StyleBox
    func get_tooltip(at_position: Vector2 = Vector2(0, 0)) -> String
    func grab_click_focus()
    func grab_focus()
    func has_focus() -> bool
    func has_theme_color(name: StringName, theme_type: StringName = "") -> bool
    func has_theme_color_override(name: StringName) -> bool
    func has_theme_constant(name: StringName, theme_type: StringName = "") -> bool
    func has_theme_constant_override(name: StringName) -> bool
    func has_theme_font(name: StringName, theme_type: StringName = "") -> bool
    func has_theme_font_override(name: StringName) -> bool
    func has_theme_font_size(name: StringName, theme_type: StringName = "") -> bool
    func has_theme_font_size_override(name: StringName) -> bool
    func has_theme_icon(name: StringName, theme_type: StringName = "") -> bool
    func has_theme_icon_override(name: StringName) -> bool
    func has_theme_stylebox(name: StringName, theme_type: StringName = "") -> bool
    func has_theme_stylebox_override(name: StringName) -> bool
    func is_drag_successful() -> bool
    func is_layout_rtl() -> bool
    func release_focus()
    func remove_theme_color_override(name: StringName)
    func remove_theme_constant_override(name: StringName)
    func remove_theme_font_override(name: StringName)
    func remove_theme_font_size_override(name: StringName)
    func remove_theme_icon_override(name: StringName)
    func remove_theme_stylebox_override(name: StringName)
    func reset_size()
    func set_anchor(side: enum Side, anchor: float, keep_offset: bool = false, push_opposite_anchor: bool = true)
    func set_anchor_and_offset(side: enum Side, anchor: float, offset: float, push_opposite_anchor: bool = false)
    func set_anchors_and_offsets_preset(preset: enum LayoutPreset, resize_mode: enum LayoutPresetMode = PRESET_MODE_MINSIZE, margin: int = 0)
    func set_anchors_preset(preset: enum LayoutPreset, keep_offsets: bool = false)
    func set_begin(position: Vector2)
    func set_drag_forwarding(drag_func: Callable, can_drop_func: Callable, drop_func: Callable)
    func set_drag_preview(control: Control)
    func set_end(position: Vector2)
    func set_focus_neighbor(side: enum Side, neighbor: NodePath)
    func set_global_position(position: Vector2, keep_offsets: bool = false)
    func set_offset(side: enum Side, offset: float)
    func set_offsets_preset(preset: enum LayoutPreset, resize_mode: enum LayoutPresetMode = PRESET_MODE_MINSIZE, margin: int = 0)
    func set_position(position: Vector2, keep_offsets: bool = false)
    func set_size(size: Vector2, keep_offsets: bool = false)
    func update_minimum_size()
    func warp_mouse(position: Vector2)

    func _can_drop_data(at_position: Vector2, data: Variant) -> bool
    func _drop_data(at_position: Vector2, data: Variant)
    func _get_drag_data(at_position: Vector2) -> Variant
    func _get_minimum_size() -> Vector2
    func _get_tooltip(at_position: Vector2) -> String
    func _gui_input(event: InputEvent)
    func _has_point(point: Vector2) -> bool
    func _make_custom_tooltip(for_text: String) -> Object
    func _structured_text_parser(args: Array, text: String) -> Array[Vector3i]

# Object < Node < CanvasItem < Control < BaseButton

  class BaseButton extends Control:

    enum ActionMode {
      ACTION_MODE_BUTTON_PRESS = 0,
      ACTION_MODE_BUTTON_RELEASE = 1,
    }

    enum DrawMode {
      DRAW_NORMAL = 0,
      DRAW_PRESSED = 1,
      DRAW_HOVER = 2,
      DRAW_DISABLED = 3,
      DRAW_HOVER_PRESSED = 4,
    }

    var action_mode: enum ActionMode = ACTION_MODE_BUTTON_RELEASE
    var button_group: ButtonGroup
    var button_mask: enum MouseButtonMask = MOUSE_BUTTON_MASK_LEFT
    var button_pressed: bool = false
    var disabled: bool = false
    var keep_pressed_outside: bool = false
    var shortcut: Shortcut
    var shortcut_feedback: bool = true
    var shortcut_in_tooltip: bool = true
    var toggle_mode: bool = false

    signal button_down()
    signal button_up()
    signal pressed()
    signal toggled(toggled_on: bool)

    func get_draw_mode() -> enum DrawMode
    func is_hovered() -> bool
    func set_pressed_no_signal(pressed: bool)

    func _pressed()
    func _toggled(toggled_on: bool)

# Object < Node < CanvasItem < Control < BaseButton < Button

  class Button extends BaseButton:

    var alignment: enum HorizontalAlignment = HORIZONTAL_ALIGNMENT_CENTER
    var clip_text: bool = false
    var expand_icon: bool = false
    var flat: bool = false
    var icon: Texture2D
    var icon_alignment: enum HorizontalAlignment = HORIZONTAL_ALIGNMENT_LEFT
    var language: String = ""
    var text: String = ""
    var text_direction: enum Control.TextDirection = Control.TEXT_DIRECTION_AUTO
    var text_overrun_behavior: enum TextServer.OverrunBehavior = TextServer.OVERRUN_NO_TRIMMING
    var vertical_icon_alignment: enum VerticalAlignment = VERTICAL_ALIGNMENT_CENTER

# Object < Node < CanvasItem < Control < BaseButton < Button < CheckBox

  class CheckBox extends Button:

    pass 

# Object < Node < CanvasItem < Control < BaseButton < Button < CheckButton

  class CheckButton extends Button:

    pass 

# Object < Node < CanvasItem < Control < BaseButton < Button < ColorPickerButton

  class ColorPickerButton extends Button:

    var color: Color = Color(0, 0, 0, 1)
    var edit_alpha: bool = true

    signal color_changed(color: Color)
    signal picker_created()
    signal popup_closed()

    func get_picker() -> ColorPicker
    func get_popup() -> PopupPanel

# Object < Node < CanvasItem < Control < BaseButton < Button < MenuButton

  class MenuButton extends Button:

    var item_count: int = 0
    var switch_on_hover: bool = false

    signal about_to_popup()

    func get_popup() -> PopupMenu
    func set_disable_shortcuts(disabled: bool)
    func show_popup()

# Object < Node < CanvasItem < Control < BaseButton < Button < OptionButton

  class OptionButton extends Button:

    var allow_reselect: bool = false
    var fit_to_longest_item: bool = true
    var item_count: int = 0
    var selected: int = -1

    signal item_focused(index: int)
    signal item_selected(index: int)

    func add_icon_item(texture: Texture2D, label: String, id: int = -1)
    func add_item(label: String, id: int = -1)
    func add_separator(text: String = "")
    func clear()
    func get_item_icon(idx: int) -> Texture2D
    func get_item_id(idx: int) -> int
    func get_item_index(id: int) -> int
    func get_item_metadata(idx: int) -> Variant
    func get_item_text(idx: int) -> String
    func get_item_tooltip(idx: int) -> String
    func get_popup() -> PopupMenu
    func get_selectable_item(from_last: bool = false) -> int
    func get_selected_id() -> int
    func get_selected_metadata() -> Variant
    func has_selectable_items() -> bool
    func is_item_disabled(idx: int) -> bool
    func is_item_separator(idx: int) -> bool
    func remove_item(idx: int)
    func select(idx: int)
    func set_disable_shortcuts(disabled: bool)
    func set_item_disabled(idx: int, disabled: bool)
    func set_item_icon(idx: int, texture: Texture2D)
    func set_item_id(idx: int, id: int)
    func set_item_metadata(idx: int, metadata: Variant)
    func set_item_text(idx: int, text: String)
    func set_item_tooltip(idx: int, tooltip: String)
    func show_popup()

# Object < Node < CanvasItem < Control < BaseButton < LinkButton

  class LinkButton extends BaseButton:

    enum UnderlineMode {
      UNDERLINE_MODE_ALWAYS = 0,
      UNDERLINE_MODE_ON_HOVER = 1,
      UNDERLINE_MODE_NEVER = 2,
    }

    var language: String = ""
    var structured_text_bidi_override: enum TextServer.StructuredTextParser = TextServer.STRUCTURED_TEXT_DEFAULT
    var structured_text_bidi_override_options: Array = []
    var text: String = ""
    var text_direction: enum Control.TextDirection = Control.TEXT_DIRECTION_AUTO
    var underline: enum UnderlineMode = UNDERLINE_MODE_ALWAYS
    var uri: String = ""

# Object < Node < CanvasItem < Control < BaseButton < TextureButton

  class TextureButton extends BaseButton:

    enum StretchMode {
      STRETCH_SCALE = 0,
      STRETCH_TILE = 1,
      STRETCH_KEEP = 2,
      STRETCH_KEEP_CENTERED = 3,
      STRETCH_KEEP_ASPECT = 4,
      STRETCH_KEEP_ASPECT_CENTERED = 5,
      STRETCH_KEEP_ASPECT_COVERED = 6,
    }

    var flip_h: bool = false
    var flip_v: bool = false
    var ignore_texture_size: bool = false
    var stretch_mode: enum StretchMode = STRETCH_KEEP
    var texture_click_mask: BitMap
    var texture_disabled: Texture2D
    var texture_focused: Texture2D
    var texture_hover: Texture2D
    var texture_normal: Texture2D
    var texture_pressed: Texture2D

# Object < Node < CanvasItem < Control < ColorRect

  class ColorRect extends Control:

    var color: Color = Color(1, 1, 1, 1)

# Object < Node < CanvasItem < Control < Container

  class Container extends Control:

    enum Notification {
      NOTIFICATION_PRE_SORT_CHILDREN = 50,
      NOTIFICATION_SORT_CHILDREN = 51,
    }

    signal pre_sort_children()
    signal sort_children()

    func fit_child_in_rect(child: Control, rect: Rect2)
    func queue_sort()

    func _get_allowed_size_flags_horizontal() -> PackedInt32Array
    func _get_allowed_size_flags_vertical() -> PackedInt32Array

# Object < Node < CanvasItem < Control < Container < AspectRatioContainer

  class AspectRatioContainer extends Container:

    enum AlignmentMode {
      ALIGNMENT_BEGIN = 0,
      ALIGNMENT_CENTER = 1,
      ALIGNMENT_END = 2,
    }

    enum StretchMode {
      STRETCH_WIDTH_CONTROLS_HEIGHT = 0,
      STRETCH_HEIGHT_CONTROLS_WIDTH = 1,
      STRETCH_FIT = 2,
      STRETCH_COVER = 3,
    }

    var alignment_horizontal: enum AlignmentMode = ALIGNMENT_CENTER
    var alignment_vertical: enum AlignmentMode = ALIGNMENT_CENTER
    var ratio: float = 1.0
    var stretch_mode: enum StretchMode = STRETCH_FIT

# Object < Node < CanvasItem < Control < Container < BoxContainer

  class BoxContainer extends Container:

    enum AlignmentMode {
      ALIGNMENT_BEGIN = 0,
      ALIGNMENT_CENTER = 1,
      ALIGNMENT_END = 2,
    }

    var alignment: enum AlignmentMode = ALIGNMENT_BEGIN
    var vertical: bool = false

    func add_spacer(begin: bool) -> Control

# Object < Node < CanvasItem < Control < Container < BoxContainer < HBoxContainer

  class HBoxContainer extends BoxContainer:

    pass 

# Object < Node < CanvasItem < Control < Container < BoxContainer < VBoxContainer

  class VBoxContainer extends BoxContainer:

    pass 

# Object < Node < CanvasItem < Control < Container < BoxContainer < VBoxContainer < ColorPicker

  class ColorPicker extends VBoxContainer:

    enum ColorModeType {
      MODE_RGB = 0,
      MODE_HSV = 1,
      MODE_RAW = 2,
      MODE_OKHSL = 3,
    }

    enum PickerShapeType {
      SHAPE_HSV_RECTANGLE = 0,
      SHAPE_HSV_WHEEL = 1,
      SHAPE_VHS_CIRCLE = 2,
      SHAPE_OKHSL_CIRCLE = 3,
      SHAPE_NONE = 4,
    }

    var can_add_swatches: bool = true
    var color: Color = Color(1, 1, 1, 1)
    var color_mode: enum ColorModeType = MODE_RGB
    var color_modes_visible: bool = true
    var deferred_mode: bool = false
    var edit_alpha: bool = true
    var hex_visible: bool = true
    var picker_shape: enum PickerShapeType = SHAPE_HSV_RECTANGLE
    var presets_visible: bool = true
    var sampler_visible: bool = true
    var sliders_visible: bool = true

    signal color_changed(color: Color)
    signal preset_added(color: Color)
    signal preset_removed(color: Color)

    func add_preset(color: Color)
    func add_recent_preset(color: Color)
    func erase_preset(color: Color)
    func erase_recent_preset(color: Color)
    func get_presets() -> PackedColorArray
    func get_recent_presets() -> PackedColorArray

# Object < Node < CanvasItem < Control < Container < CenterContainer

  class CenterContainer extends Container:

    var use_top_left: bool = false

# Object < Node < CanvasItem < Control < Container < FlowContainer

  class FlowContainer extends Container:

    enum AlignmentMode {
      ALIGNMENT_BEGIN = 0,
      ALIGNMENT_CENTER = 1,
      ALIGNMENT_END = 2,
    }

    var alignment: enum AlignmentMode = ALIGNMENT_BEGIN
    var vertical: bool = false

    func get_line_count() -> int

# Object < Node < CanvasItem < Control < Container < FlowContainer < HFlowContainer

  class HFlowContainer extends FlowContainer:

    pass 

# Object < Node < CanvasItem < Control < Container < FlowContainer < VFlowContainer

  class VFlowContainer extends FlowContainer:

    pass 

# Object < Node < CanvasItem < Control < Container < GraphElement

  class GraphElement extends Container:

    var draggable: bool = true
    var position_offset: Vector2 = Vector2(0, 0)
    var resizable: bool = false
    var selectable: bool = true
    var selected: bool = false

    signal delete_request()
    signal dragged(from: Vector2, to: Vector2)
    signal node_deselected()
    signal node_selected()
    signal position_offset_changed()
    signal raise_request()
    signal resize_request(new_minsize: Vector2)

# Object < Node < CanvasItem < Control < Container < GraphElement < GraphNode

  class GraphNode extends GraphElement:

    var title: String = ""

    signal slot_updated(slot_index: int)

    func clear_all_slots()
    func clear_slot(slot_index: int)
    func get_input_port_color(port_idx: int) -> Color
    func get_input_port_count() -> int
    func get_input_port_position(port_idx: int) -> Vector2
    func get_input_port_slot(port_idx: int) -> int
    func get_input_port_type(port_idx: int) -> int
    func get_output_port_color(port_idx: int) -> Color
    func get_output_port_count() -> int
    func get_output_port_position(port_idx: int) -> Vector2
    func get_output_port_slot(port_idx: int) -> int
    func get_output_port_type(port_idx: int) -> int
    func get_slot_color_left(slot_index: int) -> Color
    func get_slot_color_right(slot_index: int) -> Color
    func get_slot_type_left(slot_index: int) -> int
    func get_slot_type_right(slot_index: int) -> int
    func get_titlebar_hbox() -> HBoxContainer
    func is_slot_draw_stylebox(slot_index: int) -> bool
    func is_slot_enabled_left(slot_index: int) -> bool
    func is_slot_enabled_right(slot_index: int) -> bool
    func set_slot(slot_index: int, enable_left_port: bool, type_left: int, color_left: Color, enable_right_port: bool, type_right: int, color_right: Color, custom_icon_left: Texture2D = null, custom_icon_right: Texture2D = null, draw_stylebox: bool = true)
    func set_slot_color_left(slot_index: int, color: Color)
    func set_slot_color_right(slot_index: int, color: Color)
    func set_slot_draw_stylebox(slot_index: int, enable: bool)
    func set_slot_enabled_left(slot_index: int, enable: bool)
    func set_slot_enabled_right(slot_index: int, enable: bool)
    func set_slot_type_left(slot_index: int, type: int)
    func set_slot_type_right(slot_index: int, type: int)

    func _draw_port(slot_index: int, position: Vector2i, left: bool, color: Color)

# Object < Node < CanvasItem < Control < Container < GridContainer

  class GridContainer extends Container:

    var columns: int = 1

# Object < Node < CanvasItem < Control < Container < MarginContainer

  class MarginContainer extends Container:

    pass 

# Object < Node < CanvasItem < Control < Container < PanelContainer

  class PanelContainer extends Container:

    pass 

# Object < Node < CanvasItem < Control < Container < ScrollContainer

  class ScrollContainer extends Container:

    enum ScrollMode {
      SCROLL_MODE_DISABLED = 0,
      SCROLL_MODE_AUTO = 1,
      SCROLL_MODE_SHOW_ALWAYS = 2,
      SCROLL_MODE_SHOW_NEVER = 3,
    }

    var follow_focus: bool = false
    var horizontal_scroll_mode: enum ScrollMode = SCROLL_MODE_AUTO
    var scroll_deadzone: int = 0
    var scroll_horizontal: int = 0
    var scroll_horizontal_custom_step: float = -1.0
    var scroll_vertical: int = 0
    var scroll_vertical_custom_step: float = -1.0
    var vertical_scroll_mode: enum ScrollMode = SCROLL_MODE_AUTO

    signal scroll_ended()
    signal scroll_started()

    func ensure_control_visible(control: Control)
    func get_h_scroll_bar() -> HScrollBar
    func get_v_scroll_bar() -> VScrollBar

# Object < Node < CanvasItem < Control < Container < SplitContainer

  class SplitContainer extends Container:

    enum DraggerVisibility {
      DRAGGER_VISIBLE = 0,
      DRAGGER_HIDDEN = 1,
      DRAGGER_HIDDEN_COLLAPSED = 2,
    }

    var collapsed: bool = false
    var dragger_visibility: enum DraggerVisibility = DRAGGER_VISIBLE
    var split_offset: int = 0
    var vertical: bool = false

    signal dragged(offset: int)

    func clamp_split_offset()

# Object < Node < CanvasItem < Control < Container < SplitContainer < HSplitContainer

  class HSplitContainer extends SplitContainer:

    pass 

# Object < Node < CanvasItem < Control < Container < SplitContainer < VSplitContainer

  class VSplitContainer extends SplitContainer:

    pass 

# Object < Node < CanvasItem < Control < Container < SubViewportContainer

  class SubViewportContainer extends Container:

    var stretch: bool = false
    var stretch_shrink: int = 1

    func _propagate_input_event(event: InputEvent) -> bool

# Object < Node < CanvasItem < Control < Container < TabContainer

  class TabContainer extends Container:

    var all_tabs_in_front: bool = false
    var clip_tabs: bool = true
    var current_tab: int = 0
    var drag_to_rearrange_enabled: bool = false
    var tab_alignment: enum TabBar.AlignmentMode = TabBar.ALIGNMENT_LEFT
    var tab_focus_mode: enum Control.FocusMode = Control.FOCUS_ALL
    var tabs_rearrange_group: int = -1
    var tabs_visible: bool = true
    var use_hidden_tabs_for_min_size: bool = false

    signal active_tab_rearranged(idx_to: int)
    signal pre_popup_pressed()
    signal tab_button_pressed(tab: int)
    signal tab_changed(tab: int)
    signal tab_clicked(tab: int)
    signal tab_hovered(tab: int)
    signal tab_selected(tab: int)

    func get_current_tab_control() -> Control
    func get_popup() -> Popup
    func get_previous_tab() -> int
    func get_tab_bar() -> TabBar
    func get_tab_button_icon(tab_idx: int) -> Texture2D
    func get_tab_control(tab_idx: int) -> Control
    func get_tab_count() -> int
    func get_tab_icon(tab_idx: int) -> Texture2D
    func get_tab_idx_at_point(point: Vector2) -> int
    func get_tab_idx_from_control(control: Control) -> int
    func get_tab_metadata(tab_idx: int) -> Variant
    func get_tab_title(tab_idx: int) -> String
    func is_tab_disabled(tab_idx: int) -> bool
    func is_tab_hidden(tab_idx: int) -> bool
    func select_next_available() -> bool
    func select_previous_available() -> bool
    func set_popup(popup: Node)
    func set_tab_button_icon(tab_idx: int, icon: Texture2D)
    func set_tab_disabled(tab_idx: int, disabled: bool)
    func set_tab_hidden(tab_idx: int, hidden: bool)
    func set_tab_icon(tab_idx: int, icon: Texture2D)
    func set_tab_metadata(tab_idx: int, metadata: Variant)
    func set_tab_title(tab_idx: int, title: String)

# Object < Node < CanvasItem < Control < GraphEdit

  class GraphEdit extends Control:

    enum PanningScheme {
      SCROLL_ZOOMS = 0,
      SCROLL_PANS = 1,
    }

    var connection_lines_antialiased: bool = true
    var connection_lines_curvature: float = 0.5
    var connection_lines_thickness: float = 2.0
    var minimap_enabled: bool = true
    var minimap_opacity: float = 0.65
    var minimap_size: Vector2 = Vector2(240, 160)
    var panning_scheme: enum PanningScheme = SCROLL_ZOOMS
    var right_disconnects: bool = false
    var scroll_offset: Vector2 = Vector2(0, 0)
    var show_arrange_button: bool = true
    var show_grid: bool = true
    var show_grid_buttons: bool = true
    var show_menu: bool = true
    var show_minimap_button: bool = true
    var show_zoom_buttons: bool = true
    var show_zoom_label: bool = false
    var snapping_distance: int = 20
    var snapping_enabled: bool = true
    var zoom: float = 1.0
    var zoom_max: float = 2.0736
    var zoom_min: float = 0.232568
    var zoom_step: float = 1.2

    signal begin_node_move()
    signal connection_drag_ended()
    signal connection_drag_started(from_node: StringName, from_port: int, is_output: bool)
    signal connection_from_empty(to_node: StringName, to_port: int, release_position: Vector2)
    signal connection_request(from_node: StringName, from_port: int, to_node: StringName, to_port: int)
    signal connection_to_empty(from_node: StringName, from_port: int, release_position: Vector2)
    signal copy_nodes_request()
    signal delete_nodes_request(nodes: Array[StringName])
    signal disconnection_request(from_node: StringName, from_port: int, to_node: StringName, to_port: int)
    signal duplicate_nodes_request()
    signal end_node_move()
    signal node_deselected(node: Node)
    signal node_selected(node: Node)
    signal paste_nodes_request()
    signal popup_request(position: Vector2)
    signal scroll_offset_changed(offset: Vector2)

    func add_valid_connection_type(from_type: int, to_type: int)
    func add_valid_left_disconnect_type(type: int)
    func add_valid_right_disconnect_type(type: int)
    func arrange_nodes()
    func clear_connections()
    func connect_node(from_node: StringName, from_port: int, to_node: StringName, to_port: int) -> enum Error
    func disconnect_node(from_node: StringName, from_port: int, to_node: StringName, to_port: int)
    func force_connection_drag_end()
    func get_connection_line(from_node: Vector2, to_node: Vector2) -> PackedVector2Array
    func get_connection_list() -> Array[Dictionary]
    func get_menu_hbox() -> HBoxContainer
    func is_node_connected(from_node: StringName, from_port: int, to_node: StringName, to_port: int) -> bool
    func is_valid_connection_type(from_type: int, to_type: int) -> bool
    func remove_valid_connection_type(from_type: int, to_type: int)
    func remove_valid_left_disconnect_type(type: int)
    func remove_valid_right_disconnect_type(type: int)
    func set_connection_activity(from_node: StringName, from_port: int, to_node: StringName, to_port: int, amount: float)
    func set_selected(node: Node)

    func _get_connection_line(from_position: Vector2, to_position: Vector2) -> PackedVector2Array
    func _is_in_input_hotzone(in_node: Object, in_port: int, mouse_position: Vector2) -> bool
    func _is_in_output_hotzone(in_node: Object, in_port: int, mouse_position: Vector2) -> bool
    func _is_node_hover_valid(from_node: StringName, from_port: int, to_node: StringName, to_port: int) -> bool

# Object < Node < CanvasItem < Control < ItemList

  class ItemList extends Control:

    enum IconMode {
      ICON_MODE_TOP = 0,
      ICON_MODE_LEFT = 1,
    }

    enum SelectMode {
      SELECT_SINGLE = 0,
      SELECT_MULTI = 1,
    }

    var allow_reselect: bool = false
    var allow_rmb_select: bool = false
    var allow_search: bool = true
    var auto_height: bool = false
    var fixed_column_width: int = 0
    var fixed_icon_size: Vector2i = Vector2i(0, 0)
    var icon_mode: enum IconMode = ICON_MODE_LEFT
    var icon_scale: float = 1.0
    var item_count: int = 0
    var max_columns: int = 1
    var max_text_lines: int = 1
    var same_column_width: bool = false
    var select_mode: enum SelectMode = SELECT_SINGLE
    var text_overrun_behavior: enum TextServer.OverrunBehavior = TextServer.OVERRUN_TRIM_ELLIPSIS

    signal empty_clicked(at_position: Vector2, mouse_button_index: enum MouseButton)
    signal item_activated(index: int)
    signal item_clicked(index: int, at_position: Vector2, mouse_button_index: enum MouseButton)
    signal item_selected(index: int)
    signal multi_selected(index: int, selected: bool)

    func add_icon_item(icon: Texture2D, selectable: bool = true) -> int
    func add_item(text: String, icon: Texture2D = null, selectable: bool = true) -> int
    func clear()
    func deselect(idx: int)
    func deselect_all()
    func ensure_current_is_visible()
    func force_update_list_size()
    func get_item_at_position(position: Vector2, exact: bool = false) -> int
    func get_item_custom_bg_color(idx: int) -> Color
    func get_item_custom_fg_color(idx: int) -> Color
    func get_item_icon(idx: int) -> Texture2D
    func get_item_icon_modulate(idx: int) -> Color
    func get_item_icon_region(idx: int) -> Rect2
    func get_item_language(idx: int) -> String
    func get_item_metadata(idx: int) -> Variant
    func get_item_rect(idx: int, expand: bool = true) -> Rect2
    func get_item_text(idx: int) -> String
    func get_item_text_direction(idx: int) -> enum Control.TextDirection
    func get_item_tooltip(idx: int) -> String
    func get_selected_items() -> PackedInt32Array
    func get_v_scroll_bar() -> VScrollBar
    func is_anything_selected() -> bool
    func is_item_disabled(idx: int) -> bool
    func is_item_icon_transposed(idx: int) -> bool
    func is_item_selectable(idx: int) -> bool
    func is_item_tooltip_enabled(idx: int) -> bool
    func is_selected(idx: int) -> bool
    func move_item(from_idx: int, to_idx: int)
    func remove_item(idx: int)
    func select(idx: int, single: bool = true)
    func set_item_custom_bg_color(idx: int, custom_bg_color: Color)
    func set_item_custom_fg_color(idx: int, custom_fg_color: Color)
    func set_item_disabled(idx: int, disabled: bool)
    func set_item_icon(idx: int, icon: Texture2D)
    func set_item_icon_modulate(idx: int, modulate: Color)
    func set_item_icon_region(idx: int, rect: Rect2)
    func set_item_icon_transposed(idx: int, transposed: bool)
    func set_item_language(idx: int, language: String)
    func set_item_metadata(idx: int, metadata: Variant)
    func set_item_selectable(idx: int, selectable: bool)
    func set_item_text(idx: int, text: String)
    func set_item_text_direction(idx: int, direction: enum Control.TextDirection)
    func set_item_tooltip(idx: int, tooltip: String)
    func set_item_tooltip_enabled(idx: int, enable: bool)
    func sort_items_by_text()

# Object < Node < CanvasItem < Control < Label

  class Label extends Control:

    var autowrap_mode: enum TextServer.AutowrapMode = TextServer.AUTOWRAP_OFF
    var clip_text: bool = false
    var horizontal_alignment: enum HorizontalAlignment = HORIZONTAL_ALIGNMENT_LEFT
    var justification_flags: enum TextServer.JustificationFlag = TextServer.JUSTIFICATION_KASHIDA & TextServer.JUSTIFICATION_WORD_BOUND & TextServer.JUSTIFICATION_SKIP_LAST_LINE & TextServer.JUSTIFICATION_DO_NOT_SKIP_SINGLE_LINE
    var label_settings: LabelSettings
    var language: String = ""
    var lines_skipped: int = 0
    var max_lines_visible: int = -1
    var structured_text_bidi_override: enum TextServer.StructuredTextParser = TextServer.STRUCTURED_TEXT_DEFAULT
    var structured_text_bidi_override_options: Array = []
    var tab_stops: PackedFloat32Array = PackedFloat32Array()
    var text: String = ""
    var text_direction: enum Control.TextDirection = Control.TEXT_DIRECTION_AUTO
    var text_overrun_behavior: enum TextServer.OverrunBehavior = TextServer.OVERRUN_NO_TRIMMING
    var uppercase: bool = false
    var vertical_alignment: enum VerticalAlignment = VERTICAL_ALIGNMENT_TOP
    var visible_characters: int = -1
    var visible_characters_behavior: enum TextServer.VisibleCharactersBehavior = TextServer.VC_CHARS_BEFORE_SHAPING
    var visible_ratio: float = 1.0

    func get_line_count() -> int
    func get_line_height(line: int = -1) -> int
    func get_total_character_count() -> int
    func get_visible_line_count() -> int

# Object < Node < CanvasItem < Control < LineEdit

  class LineEdit extends Control:

    enum MenuItems {
      MENU_CUT = 0,
      MENU_COPY = 1,
      MENU_PASTE = 2,
      MENU_CLEAR = 3,
      MENU_SELECT_ALL = 4,
      MENU_UNDO = 5,
      MENU_REDO = 6,
      MENU_SUBMENU_TEXT_DIR = 7,
      MENU_DIR_INHERITED = 8,
      MENU_DIR_AUTO = 9,
      MENU_DIR_LTR = 10,
      MENU_DIR_RTL = 11,
      MENU_DISPLAY_UCC = 12,
      MENU_SUBMENU_INSERT_UCC = 13,
      MENU_INSERT_LRM = 14,
      MENU_INSERT_RLM = 15,
      MENU_INSERT_LRE = 16,
      MENU_INSERT_RLE = 17,
      MENU_INSERT_LRO = 18,
      MENU_INSERT_RLO = 19,
      MENU_INSERT_PDF = 20,
      MENU_INSERT_ALM = 21,
      MENU_INSERT_LRI = 22,
      MENU_INSERT_RLI = 23,
      MENU_INSERT_FSI = 24,
      MENU_INSERT_PDI = 25,
      MENU_INSERT_ZWJ = 26,
      MENU_INSERT_ZWNJ = 27,
      MENU_INSERT_WJ = 28,
      MENU_INSERT_SHY = 29,
      MENU_MAX = 30,
    }

    enum VirtualKeyboardType {
      KEYBOARD_TYPE_DEFAULT = 0,
      KEYBOARD_TYPE_MULTILINE = 1,
      KEYBOARD_TYPE_NUMBER = 2,
      KEYBOARD_TYPE_NUMBER_DECIMAL = 3,
      KEYBOARD_TYPE_PHONE = 4,
      KEYBOARD_TYPE_EMAIL_ADDRESS = 5,
      KEYBOARD_TYPE_PASSWORD = 6,
      KEYBOARD_TYPE_URL = 7,
    }

    var alignment: enum HorizontalAlignment = HORIZONTAL_ALIGNMENT_LEFT
    var caret_blink: bool = false
    var caret_blink_interval: float = 0.65
    var caret_column: int = 0
    var caret_force_displayed: bool = false
    var caret_mid_grapheme: bool = false
    var clear_button_enabled: bool = false
    var context_menu_enabled: bool = true
    var deselect_on_focus_loss_enabled: bool = true
    var drag_and_drop_selection_enabled: bool = true
    var draw_control_chars: bool = false
    var editable: bool = true
    var expand_to_text_length: bool = false
    var flat: bool = false
    var language: String = ""
    var max_length: int = 0
    var middle_mouse_paste_enabled: bool = true
    var placeholder_text: String = ""
    var right_icon: Texture2D
    var secret: bool = false
    var secret_character: String = "•"
    var select_all_on_focus: bool = false
    var selecting_enabled: bool = true
    var shortcut_keys_enabled: bool = true
    var structured_text_bidi_override: enum TextServer.StructuredTextParser = TextServer.STRUCTURED_TEXT_DEFAULT
    var structured_text_bidi_override_options: Array = []
    var text: String = ""
    var text_direction: enum Control.TextDirection = Control.TEXT_DIRECTION_AUTO
    var virtual_keyboard_enabled: bool = true
    var virtual_keyboard_type: enum VirtualKeyboardType = KEYBOARD_TYPE_DEFAULT

    signal text_change_rejected(rejected_substring: String)
    signal text_changed(new_text: String)
    signal text_submitted(new_text: String)

    func clear()
    func delete_char_at_caret()
    func delete_text(from_column: int, to_column: int)
    func deselect()
    func get_menu() -> PopupMenu
    func get_scroll_offset() -> float
    func get_selected_text() -> String
    func get_selection_from_column() -> int
    func get_selection_to_column() -> int
    func has_selection() -> bool
    func insert_text_at_caret(text: String)
    func is_menu_visible() -> bool
    func menu_option(option: enum MenuItems)
    func select(from: int = 0, to: int = -1)
    func select_all()

# Object < Node < CanvasItem < Control < MenuBar

  class MenuBar extends Control:

    var flat: bool = false
    var language: String = ""
    var prefer_global_menu: bool = true
    var start_index: int = -1
    var switch_on_hover: bool = true
    var text_direction: enum Control.TextDirection = Control.TEXT_DIRECTION_AUTO

    func get_menu_count() -> int
    func get_menu_popup(menu: int) -> PopupMenu
    func get_menu_title(menu: int) -> String
    func get_menu_tooltip(menu: int) -> String
    func is_menu_disabled(menu: int) -> bool
    func is_menu_hidden(menu: int) -> bool
    func is_native_menu() -> bool
    func set_disable_shortcuts(disabled: bool)
    func set_menu_disabled(menu: int, disabled: bool)
    func set_menu_hidden(menu: int, hidden: bool)
    func set_menu_title(menu: int, title: String)
    func set_menu_tooltip(menu: int, tooltip: String)

# Object < Node < CanvasItem < Control < NinePatchRect

  class NinePatchRect extends Control:

    enum AxisStretchMode {
      AXIS_STRETCH_MODE_STRETCH = 0,
      AXIS_STRETCH_MODE_TILE = 1,
      AXIS_STRETCH_MODE_TILE_FIT = 2,
    }

    var axis_stretch_horizontal: enum AxisStretchMode = AXIS_STRETCH_MODE_STRETCH
    var axis_stretch_vertical: enum AxisStretchMode = AXIS_STRETCH_MODE_STRETCH
    var draw_center: bool = true
    var patch_margin_bottom: int = 0
    var patch_margin_left: int = 0
    var patch_margin_right: int = 0
    var patch_margin_top: int = 0
    var region_rect: Rect2 = Rect2(0, 0, 0, 0)
    var texture: Texture2D

    signal texture_changed()

    func get_patch_margin(margin: enum Side) -> int
    func set_patch_margin(margin: enum Side, value: int)

# Object < Node < CanvasItem < Control < Panel

  class Panel extends Control:

    pass 

# Object < Node < CanvasItem < Control < Range

  class Range extends Control:

    var allow_greater: bool = false
    var allow_lesser: bool = false
    var exp_edit: bool = false
    var max_value: float = 100.0
    var min_value: float = 0.0
    var page: float = 0.0
    var ratio: float
    var rounded: bool = false
    var step: float = 0.01
    var value: float = 0.0

    signal changed()
    signal value_changed(value: float)

    func set_value_no_signal(value: float)
    func share(with: Node)
    func unshare()

    func _value_changed(new_value: float)

# Object < Node < CanvasItem < Control < Range < ProgressBar

  class ProgressBar extends Range:

    enum FillMode {
      FILL_BEGIN_TO_END = 0,
      FILL_END_TO_BEGIN = 1,
      FILL_TOP_TO_BOTTOM = 2,
      FILL_BOTTOM_TO_TOP = 3,
    }

    var fill_mode: enum FillMode = FILL_BEGIN_TO_END
    var show_percentage: bool = true

# Object < Node < CanvasItem < Control < Range < ScrollBar (abstract)

  class ScrollBar extends Range:

    var custom_step: float = -1.0

    signal scrolling()

# Object < Node < CanvasItem < Control < Range < ScrollBar < HScrollBar

  class HScrollBar extends ScrollBar:

    pass 

# Object < Node < CanvasItem < Control < Range < ScrollBar < VScrollBar

  class VScrollBar extends ScrollBar:

    pass 

# Object < Node < CanvasItem < Control < Range < Slider (abstract)

  class Slider extends Range:

    var editable: bool = true
    var scrollable: bool = true
    var tick_count: int = 0
    var ticks_on_borders: bool = false

    signal drag_ended(value_changed: bool)
    signal drag_started()

# Object < Node < CanvasItem < Control < Range < Slider < HSlider

  class HSlider extends Slider:

    pass 

# Object < Node < CanvasItem < Control < Range < Slider < VSlider

  class VSlider extends Slider:

    pass 

# Object < Node < CanvasItem < Control < Range < SpinBox

  class SpinBox extends Range:

    var alignment: enum HorizontalAlignment = HORIZONTAL_ALIGNMENT_LEFT
    var custom_arrow_step: float = 0.0
    var editable: bool = true
    var prefix: String = ""
    var select_all_on_focus: bool = false
    var suffix: String = ""
    var update_on_text_changed: bool = false

    func apply()
    func get_line_edit() -> LineEdit

# Object < Node < CanvasItem < Control < Range < TextureProgressBar

  class TextureProgressBar extends Range:

    enum FillMode {
      FILL_LEFT_TO_RIGHT = 0,
      FILL_RIGHT_TO_LEFT = 1,
      FILL_TOP_TO_BOTTOM = 2,
      FILL_BOTTOM_TO_TOP = 3,
      FILL_CLOCKWISE = 4,
      FILL_COUNTER_CLOCKWISE = 5,
      FILL_BILINEAR_LEFT_AND_RIGHT = 6,
      FILL_BILINEAR_TOP_AND_BOTTOM = 7,
      FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE = 8,
    }

    var fill_mode: int = 0
    var nine_patch_stretch: bool = false
    var radial_center_offset: Vector2 = Vector2(0, 0)
    var radial_fill_degrees: float = 360.0
    var radial_initial_angle: float = 0.0
    var stretch_margin_bottom: int = 0
    var stretch_margin_left: int = 0
    var stretch_margin_right: int = 0
    var stretch_margin_top: int = 0
    var texture_over: Texture2D
    var texture_progress: Texture2D
    var texture_progress_offset: Vector2 = Vector2(0, 0)
    var texture_under: Texture2D
    var tint_over: Color = Color(1, 1, 1, 1)
    var tint_progress: Color = Color(1, 1, 1, 1)
    var tint_under: Color = Color(1, 1, 1, 1)

    func get_stretch_margin(margin: enum Side) -> int
    func set_stretch_margin(margin: enum Side, value: int)

# Object < Node < CanvasItem < Control < ReferenceRect

  class ReferenceRect extends Control:

    var border_color: Color = Color(1, 0, 0, 1)
    var border_width: float = 1.0
    var editor_only: bool = true

# Object < Node < CanvasItem < Control < RichTextLabel

  class RichTextLabel extends Control:

    enum ImageUpdateMask {
      UPDATE_TEXTURE = 1,
      UPDATE_SIZE = 2,
      UPDATE_COLOR = 4,
      UPDATE_ALIGNMENT = 8,
      UPDATE_REGION = 16,
      UPDATE_PAD = 32,
      UPDATE_TOOLTIP = 64,
      UPDATE_WIDTH_IN_PERCENT = 128,
    }

    enum ListType {
      LIST_NUMBERS = 0,
      LIST_LETTERS = 1,
      LIST_ROMAN = 2,
      LIST_DOTS = 3,
    }

    enum MenuItems {
      MENU_COPY = 0,
      MENU_SELECT_ALL = 1,
      MENU_MAX = 2,
    }

    var autowrap_mode: enum TextServer.AutowrapMode = TextServer.AUTOWRAP_WORD_SMART
    var bbcode_enabled: bool = false
    var context_menu_enabled: bool = false
    var custom_effects: Array = []
    var deselect_on_focus_loss_enabled: bool = true
    var drag_and_drop_selection_enabled: bool = true
    var fit_content: bool = false
    var hint_underlined: bool = true
    var language: String = ""
    var meta_underlined: bool = true
    var progress_bar_delay: int = 1000
    var scroll_active: bool = true
    var scroll_following: bool = false
    var selection_enabled: bool = false
    var shortcut_keys_enabled: bool = true
    var structured_text_bidi_override: enum TextServer.StructuredTextParser = TextServer.STRUCTURED_TEXT_DEFAULT
    var structured_text_bidi_override_options: Array = []
    var tab_size: int = 4
    var text: String = ""
    var text_direction: enum Control.TextDirection = Control.TEXT_DIRECTION_AUTO
    var threaded: bool = false
    var visible_characters: int = -1
    var visible_characters_behavior: enum TextServer.VisibleCharactersBehavior = TextServer.VC_CHARS_BEFORE_SHAPING
    var visible_ratio: float = 1.0

    signal finished()
    signal meta_clicked(meta: Variant)
    signal meta_hover_ended(meta: Variant)
    signal meta_hover_started(meta: Variant)

    func add_image(image: Texture2D, width: int = 0, height: int = 0, color: Color = Color(1, 1, 1, 1), inline_align: enum InlineAlignment = INLINE_ALIGNMENT_CENTER, region: Rect2 = Rect2(0, 0, 0, 0), key: Variant = null, pad: bool = false, tooltip: String = "", size_in_percent: bool = false)
    func add_text(text: String)
    func append_text(bbcode: String)
    func clear()
    func deselect()
    func get_character_line(character: int) -> int
    func get_character_paragraph(character: int) -> int
    func get_content_height() -> int
    func get_content_width() -> int
    func get_line_count() -> int
    func get_line_offset(line: int) -> float
    func get_menu() -> PopupMenu
    func get_paragraph_count() -> int
    func get_paragraph_offset(paragraph: int) -> float
    func get_parsed_text() -> String
    func get_selected_text() -> String
    func get_selection_from() -> int
    func get_selection_to() -> int
    func get_total_character_count() -> int
    func get_v_scroll_bar() -> VScrollBar
    func get_visible_line_count() -> int
    func get_visible_paragraph_count() -> int
    func install_effect(effect: Variant)
    func is_menu_visible() -> bool
    func is_ready() -> bool
    func menu_option(option: enum MenuItems)
    func newline()
    func parse_bbcode(bbcode: String)
    func parse_expressions_for_values(expressions: PackedStringArray) -> Dictionary
    func pop()
    func pop_all()
    func pop_context()
    func push_bgcolor(bgcolor: Color)
    func push_bold()
    func push_bold_italics()
    func push_cell()
    func push_color(color: Color)
    func push_context()
    func push_customfx(effect: RichTextEffect, env: Dictionary)
    func push_dropcap(string: String, font: Font, size: int, dropcap_margins: Rect2 = Rect2(0, 0, 0, 0), color: Color = Color(1, 1, 1, 1), outline_size: int = 0, outline_color: Color = Color(0, 0, 0, 0))
    func push_fgcolor(fgcolor: Color)
    func push_font(font: Font, font_size: int = 0)
    func push_font_size(font_size: int)
    func push_hint(description: String)
    func push_indent(level: int)
    func push_italics()
    func push_language(language: String)
    func push_list(level: int, type: enum ListType, capitalize: bool, bullet: String = "•")
    func push_meta(data: Variant)
    func push_mono()
    func push_normal()
    func push_outline_color(color: Color)
    func push_outline_size(outline_size: int)
    func push_paragraph(alignment: enum HorizontalAlignment, base_direction: enum Control.TextDirection = Control.TEXT_DIRECTION_AUTO, language: String = "", st_parser: enum TextServer.StructuredTextParser = TextServer.STRUCTURED_TEXT_DEFAULT, justification_flags: enum TextServer.JustificationFlag = TextServer.JUSTIFICATION_KASHIDA & TextServer.JUSTIFICATION_WORD_BOUND & TextServer.JUSTIFICATION_SKIP_LAST_LINE & TextServer.JUSTIFICATION_DO_NOT_SKIP_SINGLE_LINE, tab_stops: PackedFloat32Array = PackedFloat32Array())
    func push_strikethrough()
    func push_table(columns: int, inline_align: enum InlineAlignment = INLINE_ALIGNMENT_TOP_TO, align_to_row: int = -1)
    func push_underline()
    func remove_paragraph(paragraph: int) -> bool
    func scroll_to_line(line: int)
    func scroll_to_paragraph(paragraph: int)
    func scroll_to_selection()
    func select_all()
    func set_cell_border_color(color: Color)
    func set_cell_padding(padding: Rect2)
    func set_cell_row_background_color(odd_row_bg: Color, even_row_bg: Color)
    func set_cell_size_override(min_size: Vector2, max_size: Vector2)
    func set_table_column_expand(column: int, expand: bool, ratio: int = 1)
    func update_image(key: Variant, mask: enum ImageUpdateMask, image: Texture2D, width: int = 0, height: int = 0, color: Color = Color(1, 1, 1, 1), inline_align: enum InlineAlignment = INLINE_ALIGNMENT_CENTER, region: Rect2 = Rect2(0, 0, 0, 0), pad: bool = false, tooltip: String = "", size_in_percent: bool = false)

# Object < Node < CanvasItem < Control < Separator (abstract)

  class Separator extends Control:

    pass 

# Object < Node < CanvasItem < Control < Separator < HSeparator

  class HSeparator extends Separator:

    pass 

# Object < Node < CanvasItem < Control < Separator < VSeparator

  class VSeparator extends Separator:

    pass 

# Object < Node < CanvasItem < Control < TabBar

  class TabBar extends Control:

    enum AlignmentMode {
      ALIGNMENT_LEFT = 0,
      ALIGNMENT_CENTER = 1,
      ALIGNMENT_RIGHT = 2,
      ALIGNMENT_MAX = 3,
    }

    enum CloseButtonDisplayPolicy {
      CLOSE_BUTTON_SHOW_NEVER = 0,
      CLOSE_BUTTON_SHOW_ACTIVE_ONLY = 1,
      CLOSE_BUTTON_SHOW_ALWAYS = 2,
      CLOSE_BUTTON_MAX = 3,
    }

    var clip_tabs: bool = true
    var current_tab: int = 0
    var drag_to_rearrange_enabled: bool = false
    var max_tab_width: int = 0
    var scroll_to_selected: bool = true
    var scrolling_enabled: bool = true
    var select_with_rmb: bool = false
    var tab_alignment: enum AlignmentMode = ALIGNMENT_LEFT
    var tab_close_display_policy: enum CloseButtonDisplayPolicy = CLOSE_BUTTON_SHOW_NEVER
    var tab_count: int = 0
    var tabs_rearrange_group: int = -1

    signal active_tab_rearranged(idx_to: int)
    signal tab_button_pressed(tab: int)
    signal tab_changed(tab: int)
    signal tab_clicked(tab: int)
    signal tab_close_pressed(tab: int)
    signal tab_hovered(tab: int)
    signal tab_rmb_clicked(tab: int)
    signal tab_selected(tab: int)

    func add_tab(title: String = "", icon: Texture2D = null)
    func clear_tabs()
    func ensure_tab_visible(idx: int)
    func get_offset_buttons_visible() -> bool
    func get_previous_tab() -> int
    func get_tab_button_icon(tab_idx: int) -> Texture2D
    func get_tab_icon(tab_idx: int) -> Texture2D
    func get_tab_icon_max_width(tab_idx: int) -> int
    func get_tab_idx_at_point(point: Vector2) -> int
    func get_tab_language(tab_idx: int) -> String
    func get_tab_metadata(tab_idx: int) -> Variant
    func get_tab_offset() -> int
    func get_tab_rect(tab_idx: int) -> Rect2
    func get_tab_text_direction(tab_idx: int) -> enum Control.TextDirection
    func get_tab_title(tab_idx: int) -> String
    func is_tab_disabled(tab_idx: int) -> bool
    func is_tab_hidden(tab_idx: int) -> bool
    func move_tab(from: int, to: int)
    func remove_tab(tab_idx: int)
    func select_next_available() -> bool
    func select_previous_available() -> bool
    func set_tab_button_icon(tab_idx: int, icon: Texture2D)
    func set_tab_disabled(tab_idx: int, disabled: bool)
    func set_tab_hidden(tab_idx: int, hidden: bool)
    func set_tab_icon(tab_idx: int, icon: Texture2D)
    func set_tab_icon_max_width(tab_idx: int, width: int)
    func set_tab_language(tab_idx: int, language: String)
    func set_tab_metadata(tab_idx: int, metadata: Variant)
    func set_tab_text_direction(tab_idx: int, direction: enum Control.TextDirection)
    func set_tab_title(tab_idx: int, title: String)

# Object < Node < CanvasItem < Control < TextEdit

  class TextEdit extends Control:

    enum CaretType {
      CARET_TYPE_LINE = 0,
      CARET_TYPE_BLOCK = 1,
    }

    enum EditAction {
      ACTION_NONE = 0,
      ACTION_TYPING = 1,
      ACTION_BACKSPACE = 2,
      ACTION_DELETE = 3,
    }

    enum GutterType {
      GUTTER_TYPE_STRING = 0,
      GUTTER_TYPE_ICON = 1,
      GUTTER_TYPE_CUSTOM = 2,
    }

    enum LineWrappingMode {
      LINE_WRAPPING_NONE = 0,
      LINE_WRAPPING_BOUNDARY = 1,
    }

    enum MenuItems {
      MENU_CUT = 0,
      MENU_COPY = 1,
      MENU_PASTE = 2,
      MENU_CLEAR = 3,
      MENU_SELECT_ALL = 4,
      MENU_UNDO = 5,
      MENU_REDO = 6,
      MENU_SUBMENU_TEXT_DIR = 7,
      MENU_DIR_INHERITED = 8,
      MENU_DIR_AUTO = 9,
      MENU_DIR_LTR = 10,
      MENU_DIR_RTL = 11,
      MENU_DISPLAY_UCC = 12,
      MENU_SUBMENU_INSERT_UCC = 13,
      MENU_INSERT_LRM = 14,
      MENU_INSERT_RLM = 15,
      MENU_INSERT_LRE = 16,
      MENU_INSERT_RLE = 17,
      MENU_INSERT_LRO = 18,
      MENU_INSERT_RLO = 19,
      MENU_INSERT_PDF = 20,
      MENU_INSERT_ALM = 21,
      MENU_INSERT_LRI = 22,
      MENU_INSERT_RLI = 23,
      MENU_INSERT_FSI = 24,
      MENU_INSERT_PDI = 25,
      MENU_INSERT_ZWJ = 26,
      MENU_INSERT_ZWNJ = 27,
      MENU_INSERT_WJ = 28,
      MENU_INSERT_SHY = 29,
      MENU_MAX = 30,
    }

    enum SearchFlags {
      SEARCH_MATCH_CASE = 1,
      SEARCH_WHOLE_WORDS = 2,
      SEARCH_BACKWARDS = 4,
    }

    enum SelectionMode {
      SELECTION_MODE_NONE = 0,
      SELECTION_MODE_SHIFT = 1,
      SELECTION_MODE_POINTER = 2,
      SELECTION_MODE_WORD = 3,
      SELECTION_MODE_LINE = 4,
    }

    var autowrap_mode: enum TextServer.AutowrapMode = TextServer.AUTOWRAP_WORD_SMART
    var caret_blink: bool = false
    var caret_blink_interval: float = 0.65
    var caret_draw_when_editable_disabled: bool = false
    var caret_mid_grapheme: bool = false
    var caret_move_on_right_click: bool = true
    var caret_multiple: bool = true
    var caret_type: enum CaretType = CARET_TYPE_LINE
    var context_menu_enabled: bool = true
    var deselect_on_focus_loss_enabled: bool = true
    var drag_and_drop_selection_enabled: bool = true
    var draw_control_chars: bool = false
    var draw_spaces: bool = false
    var draw_tabs: bool = false
    var editable: bool = true
    var highlight_all_occurrences: bool = false
    var highlight_current_line: bool = false
    var language: String = ""
    var middle_mouse_paste_enabled: bool = true
    var minimap_draw: bool = false
    var minimap_width: int = 80
    var placeholder_text: String = ""
    var scroll_fit_content_height: bool = false
    var scroll_horizontal: int = 0
    var scroll_past_end_of_file: bool = false
    var scroll_smooth: bool = false
    var scroll_v_scroll_speed: float = 80.0
    var scroll_vertical: float = 0.0
    var selecting_enabled: bool = true
    var shortcut_keys_enabled: bool = true
    var structured_text_bidi_override: enum TextServer.StructuredTextParser = TextServer.STRUCTURED_TEXT_DEFAULT
    var structured_text_bidi_override_options: Array = []
    var syntax_highlighter: SyntaxHighlighter
    var text: String = ""
    var text_direction: enum Control.TextDirection = Control.TEXT_DIRECTION_AUTO
    var virtual_keyboard_enabled: bool = true
    var wrap_mode: enum LineWrappingMode = LINE_WRAPPING_NONE

    signal caret_changed()
    signal gutter_added()
    signal gutter_clicked(line: int, gutter: int)
    signal gutter_removed()
    signal lines_edited_from(from_line: int, to_line: int)
    signal text_changed()
    signal text_set()

    func add_caret(line: int, col: int) -> int
    func add_caret_at_carets(below: bool)
    func add_gutter(at: int = -1)
    func add_selection_for_next_occurrence()
    func adjust_carets_after_edit(caret: int, from_line: int, from_col: int, to_line: int, to_col: int)
    func adjust_viewport_to_caret(caret_index: int = 0)
    func backspace(caret_index: int = -1)
    func begin_complex_operation()
    func center_viewport_to_caret(caret_index: int = 0)
    func clear()
    func clear_undo_history()
    func copy(caret_index: int = -1)
    func cut(caret_index: int = -1)
    func delete_selection(caret_index: int = -1)
    func deselect(caret_index: int = -1)
    func end_action()
    func end_complex_operation()
    func get_caret_column(caret_index: int = 0) -> int
    func get_caret_count() -> int
    func get_caret_draw_pos(caret_index: int = 0) -> Vector2
    func get_caret_index_edit_order() -> PackedInt32Array
    func get_caret_line(caret_index: int = 0) -> int
    func get_caret_wrap_index(caret_index: int = 0) -> int
    func get_first_non_whitespace_column(line: int) -> int
    func get_first_visible_line() -> int
    func get_gutter_count() -> int
    func get_gutter_name(gutter: int) -> String
    func get_gutter_type(gutter: int) -> enum GutterType
    func get_gutter_width(gutter: int) -> int
    func get_h_scroll_bar() -> HScrollBar
    func get_indent_level(line: int) -> int
    func get_last_full_visible_line() -> int
    func get_last_full_visible_line_wrap_index() -> int
    func get_last_unhidden_line() -> int
    func get_line(line: int) -> String
    func get_line_background_color(line: int) -> Color
    func get_line_column_at_pos(position: Vector2i, allow_out_of_bounds: bool = true) -> Vector2i
    func get_line_count() -> int
    func get_line_gutter_icon(line: int, gutter: int) -> Texture2D
    func get_line_gutter_item_color(line: int, gutter: int) -> Color
    func get_line_gutter_metadata(line: int, gutter: int) -> Variant
    func get_line_gutter_text(line: int, gutter: int) -> String
    func get_line_height() -> int
    func get_line_width(line: int, wrap_index: int = -1) -> int
    func get_line_wrap_count(line: int) -> int
    func get_line_wrap_index_at_column(line: int, column: int) -> int
    func get_line_wrapped_text(line: int) -> PackedStringArray
    func get_local_mouse_pos() -> Vector2
    func get_menu() -> PopupMenu
    func get_minimap_line_at_pos(position: Vector2i) -> int
    func get_minimap_visible_lines() -> int
    func get_next_visible_line_index_offset_from(line: int, wrap_index: int, visible_amount: int) -> Vector2i
    func get_next_visible_line_offset_from(line: int, visible_amount: int) -> int
    func get_pos_at_line_column(line: int, column: int) -> Vector2i
    func get_rect_at_line_column(line: int, column: int) -> Rect2i
    func get_saved_version() -> int
    func get_scroll_pos_for_line(line: int, wrap_index: int = 0) -> float
    func get_selected_text(caret_index: int = -1) -> String
    func get_selection_column(caret_index: int = 0) -> int
    func get_selection_from_column(caret_index: int = 0) -> int
    func get_selection_from_line(caret_index: int = 0) -> int
    func get_selection_line(caret_index: int = 0) -> int
    func get_selection_mode() -> enum SelectionMode
    func get_selection_to_column(caret_index: int = 0) -> int
    func get_selection_to_line(caret_index: int = 0) -> int
    func get_tab_size() -> int
    func get_total_gutter_width() -> int
    func get_total_visible_line_count() -> int
    func get_v_scroll_bar() -> VScrollBar
    func get_version() -> int
    func get_visible_line_count() -> int
    func get_visible_line_count_in_range(from_line: int, to_line: int) -> int
    func get_word_at_pos(position: Vector2) -> String
    func get_word_under_caret(caret_index: int = -1) -> String
    func has_ime_text() -> bool
    func has_redo() -> bool
    func has_selection(caret_index: int = -1) -> bool
    func has_undo() -> bool
    func insert_line_at(line: int, text: String)
    func insert_text_at_caret(text: String, caret_index: int = -1)
    func is_caret_visible(caret_index: int = 0) -> bool
    func is_dragging_cursor() -> bool
    func is_gutter_clickable(gutter: int) -> bool
    func is_gutter_drawn(gutter: int) -> bool
    func is_gutter_overwritable(gutter: int) -> bool
    func is_line_gutter_clickable(line: int, gutter: int) -> bool
    func is_line_wrapped(line: int) -> bool
    func is_menu_visible() -> bool
    func is_mouse_over_selection(edges: bool, caret_index: int = -1) -> bool
    func is_overtype_mode_enabled() -> bool
    func menu_option(option: enum MenuItems)
    func merge_gutters(from_line: int, to_line: int)
    func merge_overlapping_carets()
    func paste(caret_index: int = -1)
    func paste_primary_clipboard(caret_index: int = -1)
    func redo()
    func remove_caret(caret: int)
    func remove_gutter(gutter: int)
    func remove_secondary_carets()
    func remove_text(from_line: int, from_column: int, to_line: int, to_column: int)
    func search(text: String, flags: enum SearchFlags, from_line: int, from_colum: int) -> Vector2i
    func select(from_line: int, from_column: int, to_line: int, to_column: int, caret_index: int = 0)
    func select_all()
    func select_word_under_caret(caret_index: int = -1)
    func set_caret_column(column: int, adjust_viewport: bool = true, caret_index: int = 0)
    func set_caret_line(line: int, adjust_viewport: bool = true, can_be_hidden: bool = true, wrap_index: int = 0, caret_index: int = 0)
    func set_gutter_clickable(gutter: int, clickable: bool)
    func set_gutter_custom_draw(column: int, draw_callback: Callable)
    func set_gutter_draw(gutter: int, draw: bool)
    func set_gutter_name(gutter: int, name: String)
    func set_gutter_overwritable(gutter: int, overwritable: bool)
    func set_gutter_type(gutter: int, type: enum GutterType)
    func set_gutter_width(gutter: int, width: int)
    func set_line(line: int, new_text: String)
    func set_line_as_center_visible(line: int, wrap_index: int = 0)
    func set_line_as_first_visible(line: int, wrap_index: int = 0)
    func set_line_as_last_visible(line: int, wrap_index: int = 0)
    func set_line_background_color(line: int, color: Color)
    func set_line_gutter_clickable(line: int, gutter: int, clickable: bool)
    func set_line_gutter_icon(line: int, gutter: int, icon: Texture2D)
    func set_line_gutter_item_color(line: int, gutter: int, color: Color)
    func set_line_gutter_metadata(line: int, gutter: int, metadata: Variant)
    func set_line_gutter_text(line: int, gutter: int, text: String)
    func set_overtype_mode_enabled(enabled: bool)
    func set_search_flags(flags: enum SearchFlags)
    func set_search_text(search_text: String)
    func set_selection_mode(mode: enum SelectionMode, line: int = -1, column: int = -1, caret_index: int = 0)
    func set_tab_size(size: int)
    func set_tooltip_request_func(callback: Callable)
    func start_action(action: enum EditAction)
    func swap_lines(from_line: int, to_line: int)
    func tag_saved_version()
    func undo()

    func _backspace(caret_index: int)
    func _copy(caret_index: int)
    func _cut(caret_index: int)
    func _handle_unicode_input(unicode_char: int, caret_index: int)
    func _paste(caret_index: int)
    func _paste_primary_clipboard(caret_index: int)

# Object < Node < CanvasItem < Control < TextEdit < CodeEdit

  class CodeEdit extends TextEdit:

    enum CodeCompletionKind {
      KIND_CLASS = 0,
      KIND_FUNCTION = 1,
      KIND_SIGNAL = 2,
      KIND_VARIABLE = 3,
      KIND_MEMBER = 4,
      KIND_ENUM = 5,
      KIND_CONSTANT = 6,
      KIND_NODE_PATH = 7,
      KIND_FILE_PATH = 8,
      KIND_PLAIN_TEXT = 9,
    }

    enum CodeCompletionLocation {
      LOCATION_LOCAL = 0,
      LOCATION_PARENT_MASK = 256,
      LOCATION_OTHER_USER_CODE = 512,
      LOCATION_OTHER = 1024,
    }

    var auto_brace_completion_enabled: bool = false
    var auto_brace_completion_highlight_matching: bool = false
    var auto_brace_completion_pairs: Dictionary = {"\"", "\"", "'", "'", "(", ")", "[", "]", "{", "}"}
    var code_completion_enabled: bool = false
    var code_completion_prefixes: Array[String] = []
    var delimiter_comments: Array[String] = []
    var delimiter_strings: Array[String] = ["' '", "\" \""]
    var gutters_draw_bookmarks: bool = false
    var gutters_draw_breakpoints_gutter: bool = false
    var gutters_draw_executing_lines: bool = false
    var gutters_draw_fold_gutter: bool = false
    var gutters_draw_line_numbers: bool = false
    var gutters_zero_pad_line_numbers: bool = false
    var indent_automatic: bool = false
    var indent_automatic_prefixes: Array[String] = [":", "{", "[", "("]
    var indent_size: int = 4
    var indent_use_spaces: bool = false
    var line_folding: bool = false
    var line_length_guidelines: Array[int] = []
    var symbol_lookup_on_click: bool = false

    signal breakpoint_toggled(line: int)
    signal code_completion_requested()
    signal symbol_lookup(symbol: String, line: int, column: int)
    signal symbol_validate(symbol: String)

    func add_auto_brace_completion_pair(start_key: String, end_key: String)
    func add_code_completion_option(type: enum CodeCompletionKind, display_text: String, insert_text: String, text_color: Color = Color(1, 1, 1, 1), icon: Resource = null, value: Variant = 0, location: enum CodeCompletionLocation = LOCATION_OTHER)
    func add_comment_delimiter(start_key: String, end_key: String, line_only: bool = false)
    func add_string_delimiter(start_key: String, end_key: String, line_only: bool = false)
    func can_fold_line(line: int) -> bool
    func cancel_code_completion()
    func clear_bookmarked_lines()
    func clear_breakpointed_lines()
    func clear_comment_delimiters()
    func clear_executing_lines()
    func clear_string_delimiters()
    func confirm_code_completion(replace: bool = false)
    func convert_indent(from_line: int = -1, to_line: int = -1)
    func create_code_region()
    func do_indent()
    func duplicate_lines()
    func fold_all_lines()
    func fold_line(line: int)
    func get_auto_brace_completion_close_key(open_key: String) -> String
    func get_bookmarked_lines() -> PackedInt32Array
    func get_breakpointed_lines() -> PackedInt32Array
    func get_code_completion_option(index: int) -> Dictionary
    func get_code_completion_options() -> Array[Dictionary]
    func get_code_completion_selected_index() -> int
    func get_code_region_end_tag() -> String
    func get_code_region_start_tag() -> String
    func get_delimiter_end_key(delimiter_index: int) -> String
    func get_delimiter_end_position(line: int, column: int) -> Vector2
    func get_delimiter_start_key(delimiter_index: int) -> String
    func get_delimiter_start_position(line: int, column: int) -> Vector2
    func get_executing_lines() -> PackedInt32Array
    func get_folded_lines() -> Array[int]
    func get_text_for_code_completion() -> String
    func get_text_for_symbol_lookup() -> String
    func get_text_with_cursor_char(line: int, column: int) -> String
    func has_auto_brace_completion_close_key(close_key: String) -> bool
    func has_auto_brace_completion_open_key(open_key: String) -> bool
    func has_comment_delimiter(start_key: String) -> bool
    func has_string_delimiter(start_key: String) -> bool
    func indent_lines()
    func is_in_comment(line: int, column: int = -1) -> int
    func is_in_string(line: int, column: int = -1) -> int
    func is_line_bookmarked(line: int) -> bool
    func is_line_breakpointed(line: int) -> bool
    func is_line_code_region_end(line: int) -> bool
    func is_line_code_region_start(line: int) -> bool
    func is_line_executing(line: int) -> bool
    func is_line_folded(line: int) -> bool
    func remove_comment_delimiter(start_key: String)
    func remove_string_delimiter(start_key: String)
    func request_code_completion(force: bool = false)
    func set_code_completion_selected_index(index: int)
    func set_code_hint(code_hint: String)
    func set_code_hint_draw_below(draw_below: bool)
    func set_code_region_tags(start: String = "region", end: String = "endregion")
    func set_line_as_bookmarked(line: int, bookmarked: bool)
    func set_line_as_breakpoint(line: int, breakpointed: bool)
    func set_line_as_executing(line: int, executing: bool)
    func set_symbol_lookup_word_as_valid(valid: bool)
    func toggle_foldable_line(line: int)
    func unfold_all_lines()
    func unfold_line(line: int)
    func unindent_lines()
    func update_code_completion_options(force: bool)

    func _confirm_code_completion(replace: bool)
    func _filter_code_completion_candidates(candidates: Array[Dictionary]) -> Array[Dictionary]
    func _request_code_completion(force: bool)

# Object < Node < CanvasItem < Control < TextureRect

  class TextureRect extends Control:

    enum ExpandMode {
      EXPAND_KEEP_SIZE = 0,
      EXPAND_IGNORE_SIZE = 1,
      EXPAND_FIT_WIDTH = 2,
      EXPAND_FIT_WIDTH_PROPORTIONAL = 3,
      EXPAND_FIT_HEIGHT = 4,
      EXPAND_FIT_HEIGHT_PROPORTIONAL = 5,
    }

    enum StretchMode {
      STRETCH_SCALE = 0,
      STRETCH_TILE = 1,
      STRETCH_KEEP = 2,
      STRETCH_KEEP_CENTERED = 3,
      STRETCH_KEEP_ASPECT = 4,
      STRETCH_KEEP_ASPECT_CENTERED = 5,
      STRETCH_KEEP_ASPECT_COVERED = 6,
    }

    var expand_mode: enum ExpandMode = EXPAND_KEEP_SIZE
    var flip_h: bool = false
    var flip_v: bool = false
    var stretch_mode: enum StretchMode = STRETCH_SCALE
    var texture: Texture2D

# Object < Node < CanvasItem < Control < Tree

  class Tree extends Control:

    enum DropModeFlags {
      DROP_MODE_DISABLED = 0,
      DROP_MODE_ON_ITEM = 1,
      DROP_MODE_INBETWEEN = 2,
    }

    enum SelectMode {
      SELECT_SINGLE = 0,
      SELECT_ROW = 1,
      SELECT_MULTI = 2,
    }

    var allow_reselect: bool = false
    var allow_rmb_select: bool = false
    var allow_search: bool = true
    var column_titles_visible: bool = false
    var columns: int = 1
    var drop_mode_flags: enum DropModeFlags = DROP_MODE_DISABLED
    var enable_recursive_folding: bool = true
    var hide_folding: bool = false
    var hide_root: bool = false
    var scroll_horizontal_enabled: bool = true
    var scroll_vertical_enabled: bool = true
    var select_mode: enum SelectMode = SELECT_SINGLE

    signal button_clicked(item: TreeItem, column: int, id: int, mouse_button_index: enum MouseButton)
    signal cell_selected()
    signal check_propagated_to_item(item: TreeItem, column: int)
    signal column_title_clicked(column: int, mouse_button_index: enum MouseButton)
    signal custom_item_clicked(mouse_button_index: enum MouseButton)
    signal custom_popup_edited(arrow_clicked: bool)
    signal empty_clicked(position: Vector2, mouse_button_index: enum MouseButton)
    signal item_activated()
    signal item_collapsed(item: TreeItem)
    signal item_edited()
    signal item_icon_double_clicked()
    signal item_mouse_selected(position: Vector2, mouse_button_index: enum MouseButton)
    signal item_selected()
    signal multi_selected(item: TreeItem, column: int, selected: bool)
    signal nothing_selected()

    func clear()
    func create_item(parent: TreeItem = null, index: int = -1) -> TreeItem
    func deselect_all()
    func edit_selected(force_edit: bool = false) -> bool
    func ensure_cursor_is_visible()
    func get_button_id_at_position(position: Vector2) -> int
    func get_column_at_position(position: Vector2) -> int
    func get_column_expand_ratio(column: int) -> int
    func get_column_title(column: int) -> String
    func get_column_title_alignment(column: int) -> enum HorizontalAlignment
    func get_column_title_direction(column: int) -> enum Control.TextDirection
    func get_column_title_language(column: int) -> String
    func get_column_width(column: int) -> int
    func get_custom_popup_rect() -> Rect2
    func get_drop_section_at_position(position: Vector2) -> int
    func get_edited() -> TreeItem
    func get_edited_column() -> int
    func get_item_area_rect(item: TreeItem, column: int = -1, button_index: int = -1) -> Rect2
    func get_item_at_position(position: Vector2) -> TreeItem
    func get_next_selected(from: TreeItem) -> TreeItem
    func get_pressed_button() -> int
    func get_root() -> TreeItem
    func get_scroll() -> Vector2
    func get_selected() -> TreeItem
    func get_selected_column() -> int
    func is_column_clipping_content(column: int) -> bool
    func is_column_expanding(column: int) -> bool
    func scroll_to_item(item: TreeItem, center_on_item: bool = false)
    func set_column_clip_content(column: int, enable: bool)
    func set_column_custom_minimum_width(column: int, min_width: int)
    func set_column_expand(column: int, expand: bool)
    func set_column_expand_ratio(column: int, ratio: int)
    func set_column_title(column: int, title: String)
    func set_column_title_alignment(column: int, title_alignment: enum HorizontalAlignment)
    func set_column_title_direction(column: int, direction: enum Control.TextDirection)
    func set_column_title_language(column: int, language: String)
    func set_selected(item: TreeItem, column: int)

# Object < Node < CanvasItem < Control < VideoStreamPlayer

  class VideoStreamPlayer extends Control:

    var audio_track: int = 0
    var autoplay: bool = false
    var buffering_msec: int = 500
    var bus: StringName = "Master"
    var expand: bool = false
    var loop: bool = false
    var paused: bool = false
    var stream: VideoStream
    var stream_position: float
    var volume: float
    var volume_db: float = 0.0

    signal finished()

    func get_stream_length() -> float
    func get_stream_name() -> String
    func get_video_texture() -> Texture2D
    func is_playing() -> bool
    func play()
    func stop()

# Object < Node < CanvasItem < Node2D

  class Node2D extends CanvasItem:

    var global_position: Vector2
    var global_rotation: float
    var global_rotation_degrees: float
    var global_scale: Vector2
    var global_skew: float
    var global_transform: Transform2D
    var position: Vector2 = Vector2(0, 0)
    var rotation: float = 0.0
    var rotation_degrees: float
    var scale: Vector2 = Vector2(1, 1)
    var skew: float = 0.0
    var transform: Transform2D

    func apply_scale(ratio: Vector2)
    func get_angle_to(point: Vector2) -> float
    func get_relative_transform_to_parent(parent: Node) -> Transform2D
    func global_translate(offset: Vector2)
    func look_at(point: Vector2)
    func move_local_x(delta: float, scaled: bool = false)
    func move_local_y(delta: float, scaled: bool = false)
    func rotate(radians: float)
    func to_global(local_point: Vector2) -> Vector2
    func to_local(global_point: Vector2) -> Vector2
    func translate(offset: Vector2)

# Object < Node < CanvasItem < Node2D < AnimatedSprite2D

  class AnimatedSprite2D extends Node2D:

    var animation: StringName = "default"
    var autoplay: String = ""
    var centered: bool = true
    var flip_h: bool = false
    var flip_v: bool = false
    var frame: int = 0
    var frame_progress: float = 0.0
    var offset: Vector2 = Vector2(0, 0)
    var speed_scale: float = 1.0
    var sprite_frames: SpriteFrames

    signal animation_changed()
    signal animation_finished()
    signal animation_looped()
    signal frame_changed()
    signal sprite_frames_changed()

    func get_playing_speed() -> float
    func is_playing() -> bool
    func pause()
    func play(name: StringName = "", custom_speed: float = 1.0, from_end: bool = false)
    func play_backwards(name: StringName = "")
    func set_frame_and_progress(frame: int, progress: float)
    func stop()

# Object < Node < CanvasItem < Node2D < AudioListener2D

  class AudioListener2D extends Node2D:

    func clear_current()
    func is_current() -> bool
    func make_current()

# Object < Node < CanvasItem < Node2D < AudioStreamPlayer2D

  class AudioStreamPlayer2D extends Node2D:

    var area_mask: int = 1
    var attenuation: float = 1.0
    var autoplay: bool = false
    var bus: StringName = "Master"
    var max_distance: float = 2000.0
    var max_polyphony: int = 1
    var panning_strength: float = 1.0
    var pitch_scale: float = 1.0
    var playing: bool = false
    var stream: AudioStream
    var stream_paused: bool = false
    var volume_db: float = 0.0

    signal finished()

    func get_playback_position() -> float
    func get_stream_playback() -> AudioStreamPlayback
    func has_stream_playback() -> bool
    func play(from_position: float = 0.0)
    func seek(to_position: float)
    func stop()

# Object < Node < CanvasItem < Node2D < BackBufferCopy

  class BackBufferCopy extends Node2D:

    enum CopyMode {
      COPY_MODE_DISABLED = 0,
      COPY_MODE_RECT = 1,
      COPY_MODE_VIEWPORT = 2,
    }

    var copy_mode: enum CopyMode = COPY_MODE_RECT
    var rect: Rect2 = Rect2(-100, -100, 200, 200)

# Object < Node < CanvasItem < Node2D < Bone2D

  class Bone2D extends Node2D:

    var rest: Transform2D = Transform2D(Vector2(0, 0), Vector2(0, 0), Vector2(0, 0))

    func apply_rest()
    func get_autocalculate_length_and_angle() -> bool
    func get_bone_angle() -> float
    func get_index_in_skeleton() -> int
    func get_length() -> float
    func get_skeleton_rest() -> Transform2D
    func set_autocalculate_length_and_angle(auto_calculate: bool)
    func set_bone_angle(angle: float)
    func set_length(length: float)

# Object < Node < CanvasItem < Node2D < Camera2D

  class Camera2D extends Node2D:

    enum AnchorMode {
      ANCHOR_MODE_FIXED_TOP_LEFT = 0,
      ANCHOR_MODE_DRAG_CENTER = 1,
    }

    enum Camera2DProcessCallback {
      CAMERA2D_PROCESS_PHYSICS = 0,
      CAMERA2D_PROCESS_IDLE = 1,
    }

    var anchor_mode: enum AnchorMode = ANCHOR_MODE_DRAG_CENTER
    var custom_viewport: Node
    var drag_bottom_margin: float = 0.2
    var drag_horizontal_enabled: bool = false
    var drag_horizontal_offset: float = 0.0
    var drag_left_margin: float = 0.2
    var drag_right_margin: float = 0.2
    var drag_top_margin: float = 0.2
    var drag_vertical_enabled: bool = false
    var drag_vertical_offset: float = 0.0
    var editor_draw_drag_margin: bool = false
    var editor_draw_limits: bool = false
    var editor_draw_screen: bool = true
    var enabled: bool = true
    var ignore_rotation: bool = true
    var limit_bottom: int = 10000000
    var limit_left: int = -10000000
    var limit_right: int = 10000000
    var limit_smoothed: bool = false
    var limit_top: int = -10000000
    var offset: Vector2 = Vector2(0, 0)
    var position_smoothing_enabled: bool = false
    var position_smoothing_speed: float = 5.0
    var process_callback: enum Camera2DProcessCallback = CAMERA2D_PROCESS_IDLE
    var rotation_smoothing_enabled: bool = false
    var rotation_smoothing_speed: float = 5.0
    var zoom: Vector2 = Vector2(1, 1)

    func align()
    func force_update_scroll()
    func get_drag_margin(margin: enum Side) -> float
    func get_limit(margin: enum Side) -> int
    func get_screen_center_position() -> Vector2
    func get_target_position() -> Vector2
    func is_current() -> bool
    func make_current()
    func reset_smoothing()
    func set_drag_margin(margin: enum Side, drag_margin: float)
    func set_limit(margin: enum Side, limit: int)

# Object < Node < CanvasItem < Node2D < CanvasGroup

  class CanvasGroup extends Node2D:

    var clear_margin: float = 10.0
    var fit_margin: float = 10.0
    var use_mipmaps: bool = false

# Object < Node < CanvasItem < Node2D < CanvasModulate

  class CanvasModulate extends Node2D:

    var color: Color = Color(1, 1, 1, 1)

# Object < Node < CanvasItem < Node2D < CollisionObject2D (abstract)

  class CollisionObject2D extends Node2D:

    enum DisableMode {
      DISABLE_MODE_REMOVE = 0,
      DISABLE_MODE_MAKE_STATIC = 1,
      DISABLE_MODE_KEEP_ACTIVE = 2,
    }

    var collision_layer: int = 1
    var collision_mask: int = 1
    var collision_priority: float = 1.0
    var disable_mode: enum DisableMode = DISABLE_MODE_REMOVE
    var input_pickable: bool = true

    signal input_event(viewport: Node, event: InputEvent, shape_idx: int)
    signal mouse_entered()
    signal mouse_exited()
    signal mouse_shape_entered(shape_idx: int)
    signal mouse_shape_exited(shape_idx: int)

    func create_shape_owner(owner: Object) -> int
    func get_collision_layer_value(layer_number: int) -> bool
    func get_collision_mask_value(layer_number: int) -> bool
    func get_rid() -> RID
    func get_shape_owner_one_way_collision_margin(owner_id: int) -> float
    func get_shape_owners() -> PackedInt32Array
    func is_shape_owner_disabled(owner_id: int) -> bool
    func is_shape_owner_one_way_collision_enabled(owner_id: int) -> bool
    func remove_shape_owner(owner_id: int)
    func set_collision_layer_value(layer_number: int, value: bool)
    func set_collision_mask_value(layer_number: int, value: bool)
    func shape_find_owner(shape_index: int) -> int
    func shape_owner_add_shape(owner_id: int, shape: Shape2D)
    func shape_owner_clear_shapes(owner_id: int)
    func shape_owner_get_owner(owner_id: int) -> Object
    func shape_owner_get_shape(owner_id: int, shape_id: int) -> Shape2D
    func shape_owner_get_shape_count(owner_id: int) -> int
    func shape_owner_get_shape_index(owner_id: int, shape_id: int) -> int
    func shape_owner_get_transform(owner_id: int) -> Transform2D
    func shape_owner_remove_shape(owner_id: int, shape_id: int)
    func shape_owner_set_disabled(owner_id: int, disabled: bool)
    func shape_owner_set_one_way_collision(owner_id: int, enable: bool)
    func shape_owner_set_one_way_collision_margin(owner_id: int, margin: float)
    func shape_owner_set_transform(owner_id: int, transform: Transform2D)

    func _input_event(viewport: Viewport, event: InputEvent, shape_idx: int)
    func _mouse_enter()
    func _mouse_exit()
    func _mouse_shape_enter(shape_idx: int)
    func _mouse_shape_exit(shape_idx: int)

# Object < Node < CanvasItem < Node2D < CollisionObject2D < Area2D

  class Area2D extends CollisionObject2D:

    enum SpaceOverride {
      SPACE_OVERRIDE_DISABLED = 0,
      SPACE_OVERRIDE_COMBINE = 1,
      SPACE_OVERRIDE_COMBINE_REPLACE = 2,
      SPACE_OVERRIDE_REPLACE = 3,
      SPACE_OVERRIDE_REPLACE_COMBINE = 4,
    }

    var angular_damp: float = 1.0
    var angular_damp_space_override: enum SpaceOverride = SPACE_OVERRIDE_DISABLED
    var audio_bus_name: StringName = "Master"
    var audio_bus_override: bool = false
    var gravity: float = 980.0
    var gravity_direction: Vector2 = Vector2(0, 1)
    var gravity_point: bool = false
    var gravity_point_center: Vector2 = Vector2(0, 1)
    var gravity_point_unit_distance: float = 0.0
    var gravity_space_override: enum SpaceOverride = SPACE_OVERRIDE_DISABLED
    var linear_damp: float = 0.1
    var linear_damp_space_override: enum SpaceOverride = SPACE_OVERRIDE_DISABLED
    var monitorable: bool = true
    var monitoring: bool = true
    var priority: int = 0

    signal area_entered(area: Area2D)
    signal area_exited(area: Area2D)
    signal area_shape_entered(area_rid: RID, area: Area2D, area_shape_index: int, local_shape_index: int)
    signal area_shape_exited(area_rid: RID, area: Area2D, area_shape_index: int, local_shape_index: int)
    signal body_entered(body: Node2D)
    signal body_exited(body: Node2D)
    signal body_shape_entered(body_rid: RID, body: Node2D, body_shape_index: int, local_shape_index: int)
    signal body_shape_exited(body_rid: RID, body: Node2D, body_shape_index: int, local_shape_index: int)

    func get_overlapping_areas() -> Array[Area2D]
    func get_overlapping_bodies() -> Array[Node2D]
    func has_overlapping_areas() -> bool
    func has_overlapping_bodies() -> bool
    func overlaps_area(area: Node) -> bool
    func overlaps_body(body: Node) -> bool

# Object < Node < CanvasItem < Node2D < CollisionObject2D < PhysicsBody2D (abstract)

  class PhysicsBody2D extends CollisionObject2D:

    func add_collision_exception_with(body: Node)
    func get_collision_exceptions() -> Array[PhysicsBody2D]
    func move_and_collide(motion: Vector2, test_only: bool = false, safe_margin: float = 0.08, recovery_as_collision: bool = false) -> KinematicCollision2D
    func remove_collision_exception_with(body: Node)
    func test_move(from: Transform2D, motion: Vector2, collision: KinematicCollision2D = null, safe_margin: float = 0.08, recovery_as_collision: bool = false) -> bool

# Object < Node < CanvasItem < Node2D < CollisionObject2D < PhysicsBody2D < CharacterBody2D

  class CharacterBody2D extends PhysicsBody2D:

    enum MotionMode {
      MOTION_MODE_GROUNDED = 0,
      MOTION_MODE_FLOATING = 1,
    }

    enum PlatformOnLeave {
      PLATFORM_ON_LEAVE_ADD_VELOCITY = 0,
      PLATFORM_ON_LEAVE_ADD_UPWARD_VELOCITY = 1,
      PLATFORM_ON_LEAVE_DO_NOTHING = 2,
    }

    var floor_block_on_wall: bool = true
    var floor_constant_speed: bool = false
    var floor_max_angle: float = 0.785398
    var floor_snap_length: float = 1.0
    var floor_stop_on_slope: bool = true
    var max_slides: int = 4
    var motion_mode: enum MotionMode = MOTION_MODE_GROUNDED
    var platform_floor_layers: int = 4294967295
    var platform_on_leave: enum PlatformOnLeave = PLATFORM_ON_LEAVE_ADD_VELOCITY
    var platform_wall_layers: int = 0
    var safe_margin: float = 0.08
    var slide_on_ceiling: bool = true
    var up_direction: Vector2 = Vector2(0, -1)
    var velocity: Vector2 = Vector2(0, 0)
    var wall_min_slide_angle: float = 0.261799

    func apply_floor_snap()
    func get_floor_angle(up_direction: Vector2 = Vector2(0, -1)) -> float
    func get_floor_normal() -> Vector2
    func get_last_motion() -> Vector2
    func get_last_slide_collision() -> KinematicCollision2D
    func get_platform_velocity() -> Vector2
    func get_position_delta() -> Vector2
    func get_real_velocity() -> Vector2
    func get_slide_collision(slide_idx: int) -> KinematicCollision2D
    func get_slide_collision_count() -> int
    func get_wall_normal() -> Vector2
    func is_on_ceiling() -> bool
    func is_on_ceiling_only() -> bool
    func is_on_floor() -> bool
    func is_on_floor_only() -> bool
    func is_on_wall() -> bool
    func is_on_wall_only() -> bool
    func move_and_slide() -> bool

# Object < Node < CanvasItem < Node2D < CollisionObject2D < PhysicsBody2D < RigidBody2D

  class RigidBody2D extends PhysicsBody2D:

    enum CCDMode {
      CCD_MODE_DISABLED = 0,
      CCD_MODE_CAST_RAY = 1,
      CCD_MODE_CAST_SHAPE = 2,
    }

    enum CenterOfMassMode {
      CENTER_OF_MASS_MODE_AUTO = 0,
      CENTER_OF_MASS_MODE_CUSTOM = 1,
    }

    enum DampMode {
      DAMP_MODE_COMBINE = 0,
      DAMP_MODE_REPLACE = 1,
    }

    enum FreezeMode {
      FREEZE_MODE_STATIC = 0,
      FREEZE_MODE_KINEMATIC = 1,
    }

    var angular_damp: float = 0.0
    var angular_damp_mode: enum DampMode = DAMP_MODE_COMBINE
    var angular_velocity: float = 0.0
    var can_sleep: bool = true
    var center_of_mass: Vector2 = Vector2(0, 0)
    var center_of_mass_mode: enum CenterOfMassMode = CENTER_OF_MASS_MODE_AUTO
    var constant_force: Vector2 = Vector2(0, 0)
    var constant_torque: float = 0.0
    var contact_monitor: bool = false
    var continuous_cd: enum CCDMode = CCD_MODE_DISABLED
    var custom_integrator: bool = false
    var freeze: bool = false
    var freeze_mode: enum FreezeMode = FREEZE_MODE_STATIC
    var gravity_scale: float = 1.0
    var inertia: float = 0.0
    var linear_damp: float = 0.0
    var linear_damp_mode: enum DampMode = DAMP_MODE_COMBINE
    var linear_velocity: Vector2 = Vector2(0, 0)
    var lock_rotation: bool = false
    var mass: float = 1.0
    var max_contacts_reported: int = 0
    var physics_material_override: PhysicsMaterial
    var sleeping: bool = false

    signal body_entered(body: Node)
    signal body_exited(body: Node)
    signal body_shape_entered(body_rid: RID, body: Node, body_shape_index: int, local_shape_index: int)
    signal body_shape_exited(body_rid: RID, body: Node, body_shape_index: int, local_shape_index: int)
    signal sleeping_state_changed()

    func add_constant_central_force(force: Vector2)
    func add_constant_force(force: Vector2, position: Vector2 = Vector2(0, 0))
    func add_constant_torque(torque: float)
    func apply_central_force(force: Vector2)
    func apply_central_impulse(impulse: Vector2 = Vector2(0, 0))
    func apply_force(force: Vector2, position: Vector2 = Vector2(0, 0))
    func apply_impulse(impulse: Vector2, position: Vector2 = Vector2(0, 0))
    func apply_torque(torque: float)
    func apply_torque_impulse(torque: float)
    func get_colliding_bodies() -> Array[Node2D]
    func get_contact_count() -> int
    func set_axis_velocity(axis_velocity: Vector2)

    func _integrate_forces(state: PhysicsDirectBodyState2D)

# Object < Node < CanvasItem < Node2D < CollisionObject2D < PhysicsBody2D < RigidBody2D < PhysicalBone2D

  class PhysicalBone2D extends RigidBody2D:

    var auto_configure_joint: bool = true
    var bone2d_index: int = -1
    var bone2d_nodepath: NodePath = NodePath("")
    var follow_bone_when_simulating: bool = false
    var simulate_physics: bool = false

    func get_joint() -> Joint2D
    func is_simulating_physics() -> bool

# Object < Node < CanvasItem < Node2D < CollisionObject2D < PhysicsBody2D < StaticBody2D

  class StaticBody2D extends PhysicsBody2D:

    var constant_angular_velocity: float = 0.0
    var constant_linear_velocity: Vector2 = Vector2(0, 0)
    var physics_material_override: PhysicsMaterial

# Object < Node < CanvasItem < Node2D < CollisionObject2D < PhysicsBody2D < StaticBody2D < AnimatableBody2D

  class AnimatableBody2D extends StaticBody2D:

    var sync_to_physics: bool = true

# Object < Node < CanvasItem < Node2D < CollisionPolygon2D

  class CollisionPolygon2D extends Node2D:

    enum BuildMode {
      BUILD_SOLIDS = 0,
      BUILD_SEGMENTS = 1,
    }

    var build_mode: enum BuildMode = BUILD_SOLIDS
    var disabled: bool = false
    var one_way_collision: bool = false
    var one_way_collision_margin: float = 1.0
    var polygon: PackedVector2Array = PackedVector2Array()

# Object < Node < CanvasItem < Node2D < CollisionShape2D

  class CollisionShape2D extends Node2D:

    var debug_color: Color = Color(0, 0, 0, 1)
    var disabled: bool = false
    var one_way_collision: bool = false
    var one_way_collision_margin: float = 1.0
    var shape: Shape2D

# Object < Node < CanvasItem < Node2D < CPUParticles2D

  class CPUParticles2D extends Node2D:

    enum DrawOrder {
      DRAW_ORDER_INDEX = 0,
      DRAW_ORDER_LIFETIME = 1,
    }

    enum EmissionShape {
      EMISSION_SHAPE_POINT = 0,
      EMISSION_SHAPE_SPHERE = 1,
      EMISSION_SHAPE_SPHERE_SURFACE = 2,
      EMISSION_SHAPE_RECTANGLE = 3,
      EMISSION_SHAPE_POINTS = 4,
      EMISSION_SHAPE_DIRECTED_POINTS = 5,
      EMISSION_SHAPE_MAX = 6,
    }

    enum Parameter {
      PARAM_INITIAL_LINEAR_VELOCITY = 0,
      PARAM_ANGULAR_VELOCITY = 1,
      PARAM_ORBIT_VELOCITY = 2,
      PARAM_LINEAR_ACCEL = 3,
      PARAM_RADIAL_ACCEL = 4,
      PARAM_TANGENTIAL_ACCEL = 5,
      PARAM_DAMPING = 6,
      PARAM_ANGLE = 7,
      PARAM_SCALE = 8,
      PARAM_HUE_VARIATION = 9,
      PARAM_ANIM_SPEED = 10,
      PARAM_ANIM_OFFSET = 11,
      PARAM_MAX = 12,
    }

    enum ParticleFlags {
      PARTICLE_FLAG_ALIGN_Y_TO_VELOCITY = 0,
      PARTICLE_FLAG_ROTATE_Y = 1,
      PARTICLE_FLAG_DISABLE_Z = 2,
      PARTICLE_FLAG_MAX = 3,
    }

    var amount: int = 8
    var angle_curve: Curve
    var angle_max: float = 0.0
    var angle_min: float = 0.0
    var angular_velocity_curve: Curve
    var angular_velocity_max: float = 0.0
    var angular_velocity_min: float = 0.0
    var anim_offset_curve: Curve
    var anim_offset_max: float = 0.0
    var anim_offset_min: float = 0.0
    var anim_speed_curve: Curve
    var anim_speed_max: float = 0.0
    var anim_speed_min: float = 0.0
    var color: Color = Color(1, 1, 1, 1)
    var color_initial_ramp: Gradient
    var color_ramp: Gradient
    var damping_curve: Curve
    var damping_max: float = 0.0
    var damping_min: float = 0.0
    var direction: Vector2 = Vector2(1, 0)
    var draw_order: enum DrawOrder = DRAW_ORDER_INDEX
    var emission_colors: PackedColorArray
    var emission_normals: PackedVector2Array
    var emission_points: PackedVector2Array
    var emission_rect_extents: Vector2
    var emission_shape: enum EmissionShape = EMISSION_SHAPE_POINT
    var emission_sphere_radius: float
    var emitting: bool = true
    var explosiveness: float = 0.0
    var fixed_fps: int = 0
    var fract_delta: bool = true
    var gravity: Vector2 = Vector2(0, 980)
    var hue_variation_curve: Curve
    var hue_variation_max: float = 0.0
    var hue_variation_min: float = 0.0
    var initial_velocity_max: float = 0.0
    var initial_velocity_min: float = 0.0
    var lifetime: float = 1.0
    var lifetime_randomness: float = 0.0
    var linear_accel_curve: Curve
    var linear_accel_max: float = 0.0
    var linear_accel_min: float = 0.0
    var local_coords: bool = false
    var one_shot: bool = false
    var orbit_velocity_curve: Curve
    var orbit_velocity_max: float = 0.0
    var orbit_velocity_min: float = 0.0
    var particle_flag_align_y: bool = false
    var preprocess: float = 0.0
    var radial_accel_curve: Curve
    var radial_accel_max: float = 0.0
    var radial_accel_min: float = 0.0
    var randomness: float = 0.0
    var scale_amount_curve: Curve
    var scale_amount_max: float = 1.0
    var scale_amount_min: float = 1.0
    var scale_curve_x: Curve
    var scale_curve_y: Curve
    var speed_scale: float = 1.0
    var split_scale: bool = false
    var spread: float = 45.0
    var tangential_accel_curve: Curve
    var tangential_accel_max: float = 0.0
    var tangential_accel_min: float = 0.0
    var texture: Texture2D

    signal finished()

    func convert_from_particles(particles: Node)
    func get_param_curve(param: enum Parameter) -> Curve
    func get_param_max(param: enum Parameter) -> float
    func get_param_min(param: enum Parameter) -> float
    func get_particle_flag(particle_flag: enum ParticleFlags) -> bool
    func restart()
    func set_param_curve(param: enum Parameter, curve: Curve)
    func set_param_max(param: enum Parameter, value: float)
    func set_param_min(param: enum Parameter, value: float)
    func set_particle_flag(particle_flag: enum ParticleFlags, enable: bool)

# Object < Node < CanvasItem < Node2D < GPUParticles2D

  class GPUParticles2D extends Node2D:

    enum DrawOrder {
      DRAW_ORDER_INDEX = 0,
      DRAW_ORDER_LIFETIME = 1,
      DRAW_ORDER_REVERSE_LIFETIME = 2,
    }

    enum EmitFlags {
      EMIT_FLAG_POSITION = 1,
      EMIT_FLAG_ROTATION_SCALE = 2,
      EMIT_FLAG_VELOCITY = 4,
      EMIT_FLAG_COLOR = 8,
      EMIT_FLAG_CUSTOM = 16,
    }

    var amount: int = 8
    var amount_ratio: float = 1.0
    var collision_base_size: float = 1.0
    var draw_order: enum DrawOrder = DRAW_ORDER_LIFETIME
    var emitting: bool = true
    var explosiveness: float = 0.0
    var fixed_fps: int = 30
    var fract_delta: bool = true
    var interp_to_end: float = 0.0
    var interpolate: bool = true
    var lifetime: float = 1.0
    var local_coords: bool = false
    var one_shot: bool = false
    var preprocess: float = 0.0
    var process_material: Material
    var randomness: float = 0.0
    var speed_scale: float = 1.0
    var sub_emitter: NodePath = NodePath("")
    var texture: Texture2D
    var trail_enabled: bool = false
    var trail_lifetime: float = 0.3
    var trail_section_subdivisions: int = 4
    var trail_sections: int = 8
    var visibility_rect: Rect2 = Rect2(-100, -100, 200, 200)

    signal finished()

    func capture_rect() -> Rect2
    func convert_from_particles(particles: Node)
    func emit_particle(xform: Transform2D, velocity: Vector2, color: Color, custom: Color, flags: enum EmitFlags)
    func restart()

# Object < Node < CanvasItem < Node2D < Joint2D (abstract)

  class Joint2D extends Node2D:

    var bias: float = 0.0
    var disable_collision: bool = true
    var node_a: NodePath = NodePath("")
    var node_b: NodePath = NodePath("")

    func get_rid() -> RID

# Object < Node < CanvasItem < Node2D < Joint2D < DampedSpringJoint2D

  class DampedSpringJoint2D extends Joint2D:

    var damping: float = 1.0
    var length: float = 50.0
    var rest_length: float = 0.0
    var stiffness: float = 20.0

# Object < Node < CanvasItem < Node2D < Joint2D < GrooveJoint2D

  class GrooveJoint2D extends Joint2D:

    var initial_offset: float = 25.0
    var length: float = 50.0

# Object < Node < CanvasItem < Node2D < Joint2D < PinJoint2D

  class PinJoint2D extends Joint2D:

    var angular_limit_enabled: bool = false
    var angular_limit_lower: float = 0.0
    var angular_limit_upper: float = 0.0
    var motor_enabled: bool = false
    var motor_target_velocity: float = 0.0
    var softness: float = 0.0

# Object < Node < CanvasItem < Node2D < Light2D (abstract)

  class Light2D extends Node2D:

    enum BlendMode {
      BLEND_MODE_ADD = 0,
      BLEND_MODE_SUB = 1,
      BLEND_MODE_MIX = 2,
    }

    enum ShadowFilter {
      SHADOW_FILTER_NONE = 0,
      SHADOW_FILTER_PCF5 = 1,
      SHADOW_FILTER_PCF13 = 2,
    }

    var blend_mode: enum BlendMode = BLEND_MODE_ADD
    var color: Color = Color(1, 1, 1, 1)
    var editor_only: bool = false
    var enabled: bool = true
    var energy: float = 1.0
    var range_item_cull_mask: int = 1
    var range_layer_max: int = 0
    var range_layer_min: int = 0
    var range_z_max: int = 1024
    var range_z_min: int = -1024
    var shadow_color: Color = Color(0, 0, 0, 0)
    var shadow_enabled: bool = false
    var shadow_filter: enum ShadowFilter = SHADOW_FILTER_NONE
    var shadow_filter_smooth: float = 0.0
    var shadow_item_cull_mask: int = 1

    func get_height() -> float
    func set_height(height: float)

# Object < Node < CanvasItem < Node2D < Light2D < DirectionalLight2D

  class DirectionalLight2D extends Light2D:

    var height: float = 0.0
    var max_distance: float = 10000.0

# Object < Node < CanvasItem < Node2D < Light2D < PointLight2D

  class PointLight2D extends Light2D:

    var height: float = 0.0
    var offset: Vector2 = Vector2(0, 0)
    var texture: Texture2D
    var texture_scale: float = 1.0

# Object < Node < CanvasItem < Node2D < LightOccluder2D

  class LightOccluder2D extends Node2D:

    var occluder: OccluderPolygon2D
    var occluder_light_mask: int = 1
    var sdf_collision: bool = true

# Object < Node < CanvasItem < Node2D < Line2D

  class Line2D extends Node2D:

    enum LineCapMode {
      LINE_CAP_NONE = 0,
      LINE_CAP_BOX = 1,
      LINE_CAP_ROUND = 2,
    }

    enum LineJointMode {
      LINE_JOINT_SHARP = 0,
      LINE_JOINT_BEVEL = 1,
      LINE_JOINT_ROUND = 2,
    }

    enum LineTextureMode {
      LINE_TEXTURE_NONE = 0,
      LINE_TEXTURE_TILE = 1,
      LINE_TEXTURE_STRETCH = 2,
    }

    var antialiased: bool = false
    var begin_cap_mode: enum LineCapMode = LINE_CAP_NONE
    var closed: bool = false
    var default_color: Color = Color(1, 1, 1, 1)
    var end_cap_mode: enum LineCapMode = LINE_CAP_NONE
    var gradient: Gradient
    var joint_mode: enum LineJointMode = LINE_JOINT_SHARP
    var points: PackedVector2Array = PackedVector2Array()
    var round_precision: int = 8
    var sharp_limit: float = 2.0
    var texture: Texture2D
    var texture_mode: enum LineTextureMode = LINE_TEXTURE_NONE
    var width: float = 10.0
    var width_curve: Curve

    func add_point(position: Vector2, index: int = -1)
    func clear_points()
    func get_point_count() -> int
    func get_point_position(index: int) -> Vector2
    func remove_point(index: int)
    func set_point_position(index: int, position: Vector2)

# Object < Node < CanvasItem < Node2D < Marker2D

  class Marker2D extends Node2D:

    var gizmo_extents: float = 10.0

# Object < Node < CanvasItem < Node2D < MeshInstance2D

  class MeshInstance2D extends Node2D:

    var mesh: Mesh
    var texture: Texture2D

    signal texture_changed()

# Object < Node < CanvasItem < Node2D < MultiMeshInstance2D

  class MultiMeshInstance2D extends Node2D:

    var multimesh: MultiMesh
    var texture: Texture2D

    signal texture_changed()

# Object < Node < CanvasItem < Node2D < NavigationLink2D

  class NavigationLink2D extends Node2D:

    var bidirectional: bool = true
    var enabled: bool = true
    var end_position: Vector2 = Vector2(0, 0)
    var enter_cost: float = 0.0
    var navigation_layers: int = 1
    var start_position: Vector2 = Vector2(0, 0)
    var travel_cost: float = 1.0

    func get_global_end_position() -> Vector2
    func get_global_start_position() -> Vector2
    func get_navigation_layer_value(layer_number: int) -> bool
    func get_rid() -> RID
    func set_global_end_position(position: Vector2)
    func set_global_start_position(position: Vector2)
    func set_navigation_layer_value(layer_number: int, value: bool)

# Object < Node < CanvasItem < Node2D < NavigationObstacle2D

  class NavigationObstacle2D extends Node2D:

    var avoidance_enabled: bool = true
    var avoidance_layers: int = 1
    var radius: float = 0.0
    var velocity: Vector2 = Vector2(0, 0)
    var vertices: PackedVector2Array = PackedVector2Array()

    func get_avoidance_layer_value(layer_number: int) -> bool
    func get_navigation_map() -> RID
    func get_rid() -> RID
    func set_avoidance_layer_value(layer_number: int, value: bool)
    func set_navigation_map(navigation_map: RID)

# Object < Node < CanvasItem < Node2D < NavigationRegion2D

  class NavigationRegion2D extends Node2D:

    var avoidance_layers: int = 1
    var constrain_avoidance: bool = false
    var enabled: bool = true
    var enter_cost: float = 0.0
    var navigation_layers: int = 1
    var navigation_polygon: NavigationPolygon
    var travel_cost: float = 1.0
    var use_edge_connections: bool = true

    signal bake_finished()
    signal navigation_polygon_changed()

    func bake_navigation_polygon(on_thread: bool = true)
    func get_avoidance_layer_value(layer_number: int) -> bool
    func get_navigation_layer_value(layer_number: int) -> bool
    func get_navigation_map() -> RID
    func get_region_rid() -> RID
    func get_rid() -> RID
    func set_avoidance_layer_value(layer_number: int, value: bool)
    func set_navigation_layer_value(layer_number: int, value: bool)
    func set_navigation_map(navigation_map: RID)

# Object < Node < CanvasItem < Node2D < ParallaxLayer

  class ParallaxLayer extends Node2D:

    var motion_mirroring: Vector2 = Vector2(0, 0)
    var motion_offset: Vector2 = Vector2(0, 0)
    var motion_scale: Vector2 = Vector2(1, 1)

# Object < Node < CanvasItem < Node2D < Path2D

  class Path2D extends Node2D:

    var curve: Curve2D

# Object < Node < CanvasItem < Node2D < PathFollow2D

  class PathFollow2D extends Node2D:

    var cubic_interp: bool = true
    var h_offset: float = 0.0
    var loop: bool = true
    var progress: float = 0.0
    var progress_ratio: float = 0.0
    var rotates: bool = true
    var v_offset: float = 0.0

# Object < Node < CanvasItem < Node2D < Polygon2D

  class Polygon2D extends Node2D:

    var antialiased: bool = false
    var bones: Array = []
    var color: Color = Color(1, 1, 1, 1)
    var internal_vertex_count: int = 0
    var invert_border: float = 100.0
    var invert_enabled: bool = false
    var offset: Vector2 = Vector2(0, 0)
    var polygon: PackedVector2Array = PackedVector2Array()
    var polygons: Array = []
    var skeleton: NodePath = NodePath("")
    var texture: Texture2D
    var texture_offset: Vector2 = Vector2(0, 0)
    var texture_rotation: float = 0.0
    var texture_scale: Vector2 = Vector2(1, 1)
    var uv: PackedVector2Array = PackedVector2Array()
    var vertex_colors: PackedColorArray = PackedColorArray()

    func add_bone(path: NodePath, weights: PackedFloat32Array)
    func clear_bones()
    func erase_bone(index: int)
    func get_bone_count() -> int
    func get_bone_path(index: int) -> NodePath
    func get_bone_weights(index: int) -> PackedFloat32Array
    func set_bone_path(index: int, path: NodePath)
    func set_bone_weights(index: int, weights: PackedFloat32Array)

# Object < Node < CanvasItem < Node2D < RayCast2D

  class RayCast2D extends Node2D:

    var collide_with_areas: bool = false
    var collide_with_bodies: bool = true
    var collision_mask: int = 1
    var enabled: bool = true
    var exclude_parent: bool = true
    var hit_from_inside: bool = false
    var target_position: Vector2 = Vector2(0, 50)

    func add_exception(node: CollisionObject2D)
    func add_exception_rid(rid: RID)
    func clear_exceptions()
    func force_raycast_update()
    func get_collider() -> Object
    func get_collider_rid() -> RID
    func get_collider_shape() -> int
    func get_collision_mask_value(layer_number: int) -> bool
    func get_collision_normal() -> Vector2
    func get_collision_point() -> Vector2
    func is_colliding() -> bool
    func remove_exception(node: CollisionObject2D)
    func remove_exception_rid(rid: RID)
    func set_collision_mask_value(layer_number: int, value: bool)

# Object < Node < CanvasItem < Node2D < RemoteTransform2D

  class RemoteTransform2D extends Node2D:

    var remote_path: NodePath = NodePath("")
    var update_position: bool = true
    var update_rotation: bool = true
    var update_scale: bool = true
    var use_global_coordinates: bool = true

    func force_update_cache()

# Object < Node < CanvasItem < Node2D < ShapeCast2D

  class ShapeCast2D extends Node2D:

    var collide_with_areas: bool = false
    var collide_with_bodies: bool = true
    var collision_mask: int = 1
    var collision_result: Array = []
    var enabled: bool = true
    var exclude_parent: bool = true
    var margin: float = 0.0
    var max_results: int = 32
    var shape: Shape2D
    var target_position: Vector2 = Vector2(0, 50)

    func add_exception(node: CollisionObject2D)
    func add_exception_rid(rid: RID)
    func clear_exceptions()
    func force_shapecast_update()
    func get_closest_collision_safe_fraction() -> float
    func get_closest_collision_unsafe_fraction() -> float
    func get_collider(index: int) -> Object
    func get_collider_rid(index: int) -> RID
    func get_collider_shape(index: int) -> int
    func get_collision_count() -> int
    func get_collision_mask_value(layer_number: int) -> bool
    func get_collision_normal(index: int) -> Vector2
    func get_collision_point(index: int) -> Vector2
    func is_colliding() -> bool
    func remove_exception(node: CollisionObject2D)
    func remove_exception_rid(rid: RID)
    func set_collision_mask_value(layer_number: int, value: bool)

# Object < Node < CanvasItem < Node2D < Skeleton2D

  class Skeleton2D extends Node2D:

    signal bone_setup_changed()

    func execute_modifications(delta: float, execution_mode: int)
    func get_bone(idx: int) -> Bone2D
    func get_bone_count() -> int
    func get_bone_local_pose_override(bone_idx: int) -> Transform2D
    func get_modification_stack() -> SkeletonModificationStack2D
    func get_skeleton() -> RID
    func set_bone_local_pose_override(bone_idx: int, override_pose: Transform2D, strength: float, persistent: bool)
    func set_modification_stack(modification_stack: SkeletonModificationStack2D)

# Object < Node < CanvasItem < Node2D < Sprite2D

  class Sprite2D extends Node2D:

    var centered: bool = true
    var flip_h: bool = false
    var flip_v: bool = false
    var frame: int = 0
    var frame_coords: Vector2i = Vector2i(0, 0)
    var hframes: int = 1
    var offset: Vector2 = Vector2(0, 0)
    var region_enabled: bool = false
    var region_filter_clip_enabled: bool = false
    var region_rect: Rect2 = Rect2(0, 0, 0, 0)
    var texture: Texture2D
    var vframes: int = 1

    signal frame_changed()
    signal texture_changed()

    func get_rect() -> Rect2
    func is_pixel_opaque(pos: Vector2) -> bool

# Object < Node < CanvasItem < Node2D < TileMap

  class TileMap extends Node2D:

    enum VisibilityMode {
      VISIBILITY_MODE_DEFAULT = 0,
      VISIBILITY_MODE_FORCE_SHOW = 1,
      VISIBILITY_MODE_FORCE_HIDE = 2,
    }

    var collision_animatable: bool = false
    var collision_visibility_mode: enum VisibilityMode = VISIBILITY_MODE_DEFAULT
    var navigation_visibility_mode: enum VisibilityMode = VISIBILITY_MODE_DEFAULT
    var rendering_quadrant_size: int = 16
    var tile_set: TileSet

    signal changed()

    func add_layer(to_position: int)
    func clear()
    func clear_layer(layer: int)
    func erase_cell(layer: int, coords: Vector2i)
    func fix_invalid_tiles()
    func force_update(layer: int = -1)
    func get_cell_alternative_tile(layer: int, coords: Vector2i, use_proxies: bool = false) -> int
    func get_cell_atlas_coords(layer: int, coords: Vector2i, use_proxies: bool = false) -> Vector2i
    func get_cell_source_id(layer: int, coords: Vector2i, use_proxies: bool = false) -> int
    func get_cell_tile_data(layer: int, coords: Vector2i, use_proxies: bool = false) -> TileData
    func get_coords_for_body_rid(body: RID) -> Vector2i
    func get_layer_for_body_rid(body: RID) -> int
    func get_layer_modulate(layer: int) -> Color
    func get_layer_name(layer: int) -> String
    func get_layer_navigation_map(layer: int) -> RID
    func get_layer_y_sort_origin(layer: int) -> int
    func get_layer_z_index(layer: int) -> int
    func get_layers_count() -> int
    func get_navigation_map(layer: int) -> RID
    func get_neighbor_cell(coords: Vector2i, neighbor: enum TileSet.CellNeighbor) -> Vector2i
    func get_pattern(layer: int, coords_array: Array[Vector2i]) -> TileMapPattern
    func get_surrounding_cells(coords: Vector2i) -> Array[Vector2i]
    func get_used_cells(layer: int) -> Array[Vector2i]
    func get_used_cells_by_id(layer: int, source_id: int = -1, atlas_coords: Vector2i = Vector2i(-1, -1), alternative_tile: int = -1) -> Array[Vector2i]
    func get_used_rect() -> Rect2i
    func is_layer_enabled(layer: int) -> bool
    func is_layer_navigation_enabled(layer: int) -> bool
    func is_layer_y_sort_enabled(layer: int) -> bool
    func local_to_map(local_position: Vector2) -> Vector2i
    func map_pattern(position_in_tilemap: Vector2i, coords_in_pattern: Vector2i, pattern: TileMapPattern) -> Vector2i
    func map_to_local(map_position: Vector2i) -> Vector2
    func move_layer(layer: int, to_position: int)
    func notify_runtime_tile_data_update(layer: int = -1)
    func remove_layer(layer: int)
    func set_cell(layer: int, coords: Vector2i, source_id: int = -1, atlas_coords: Vector2i = Vector2i(-1, -1), alternative_tile: int = 0)
    func set_cells_terrain_connect(layer: int, cells: Array[Vector2i], terrain_set: int, terrain: int, ignore_empty_terrains: bool = true)
    func set_cells_terrain_path(layer: int, path: Array[Vector2i], terrain_set: int, terrain: int, ignore_empty_terrains: bool = true)
    func set_layer_enabled(layer: int, enabled: bool)
    func set_layer_modulate(layer: int, modulate: Color)
    func set_layer_name(layer: int, name: String)
    func set_layer_navigation_enabled(layer: int, enabled: bool)
    func set_layer_navigation_map(layer: int, map: RID)
    func set_layer_y_sort_enabled(layer: int, y_sort_enabled: bool)
    func set_layer_y_sort_origin(layer: int, y_sort_origin: int)
    func set_layer_z_index(layer: int, z_index: int)
    func set_navigation_map(layer: int, map: RID)
    func set_pattern(layer: int, position: Vector2i, pattern: TileMapPattern)
    func update_internals()

    func _tile_data_runtime_update(layer: int, coords: Vector2i, tile_data: TileData)
    func _use_tile_data_runtime_update(layer: int, coords: Vector2i) -> bool

# Object < Node < CanvasItem < Node2D < TouchScreenButton

  class TouchScreenButton extends Node2D:

    enum VisibilityMode {
      VISIBILITY_ALWAYS = 0,
      VISIBILITY_TOUCHSCREEN_ONLY = 1,
    }

    var action: String = ""
    var bitmask: BitMap
    var passby_press: bool = false
    var shape: Shape2D
    var shape_centered: bool = true
    var shape_visible: bool = true
    var texture_normal: Texture2D
    var texture_pressed: Texture2D
    var visibility_mode: enum VisibilityMode = VISIBILITY_ALWAYS

    signal pressed()
    signal released()

    func is_pressed() -> bool

# Object < Node < CanvasItem < Node2D < VisibleOnScreenNotifier2D

  class VisibleOnScreenNotifier2D extends Node2D:

    var rect: Rect2 = Rect2(-10, -10, 20, 20)

    signal screen_entered()
    signal screen_exited()

    func is_on_screen() -> bool

# Object < Node < CanvasItem < Node2D < VisibleOnScreenNotifier2D < VisibleOnScreenEnabler2D

  class VisibleOnScreenEnabler2D extends VisibleOnScreenNotifier2D:

    enum EnableMode {
      ENABLE_MODE_INHERIT = 0,
      ENABLE_MODE_ALWAYS = 1,
      ENABLE_MODE_WHEN_PAUSED = 2,
    }

    var enable_mode: enum EnableMode = ENABLE_MODE_INHERIT
    var enable_node_path: NodePath = NodePath("..")

# Object < Node < Node3D

  class Node3D extends Node:

    enum Notification {
      NOTIFICATION_ENTER_WORLD = 41,
      NOTIFICATION_EXIT_WORLD = 42,
      NOTIFICATION_VISIBILITY_CHANGED = 43,
      NOTIFICATION_LOCAL_TRANSFORM_CHANGED = 44,
      NOTIFICATION_TRANSFORM_CHANGED = 2000,
    }

    enum RotationEditMode {
      ROTATION_EDIT_MODE_EULER = 0,
      ROTATION_EDIT_MODE_QUATERNION = 1,
      ROTATION_EDIT_MODE_BASIS = 2,
    }

    var basis: Basis
    var global_basis: Basis
    var global_position: Vector3
    var global_rotation: Vector3
    var global_rotation_degrees: Vector3
    var global_transform: Transform3D
    var position: Vector3 = Vector3(0, 0, 0)
    var quaternion: Quaternion
    var rotation: Vector3 = Vector3(0, 0, 0)
    var rotation_degrees: Vector3
    var rotation_edit_mode: enum RotationEditMode = ROTATION_EDIT_MODE_EULER
    var rotation_order: enum EulerOrder = EULER_ORDER_YXZ
    var scale: Vector3 = Vector3(1, 1, 1)
    var top_level: bool = false
    var transform: Transform3D = Transform3D(Vector3(1, 0, 0), Vector3(0, 1, 0), Vector3(0, 0, 1), Vector3(0, 0, 0))
    var visibility_parent: NodePath = NodePath("")
    var visible: bool = true

    signal visibility_changed()

    func add_gizmo(gizmo: Node3DGizmo)
    func clear_gizmos()
    func clear_subgizmo_selection()
    func force_update_transform()
    func get_gizmos() -> Array[Node3DGizmo]
    func get_parent_node_3d() -> Node3D
    func get_world_3d() -> World3D
    func global_rotate(axis: Vector3, angle: float)
    func global_scale(scale: Vector3)
    func global_translate(offset: Vector3)
    func hide()
    func is_local_transform_notification_enabled() -> bool
    func is_scale_disabled() -> bool
    func is_transform_notification_enabled() -> bool
    func is_visible_in_tree() -> bool
    func look_at(target: Vector3, up: Vector3 = Vector3(0, 1, 0), use_model_front: bool = false)
    func look_at_from_position(position: Vector3, target: Vector3, up: Vector3 = Vector3(0, 1, 0), use_model_front: bool = false)
    func orthonormalize()
    func rotate(axis: Vector3, angle: float)
    func rotate_object_local(axis: Vector3, angle: float)
    func rotate_x(angle: float)
    func rotate_y(angle: float)
    func rotate_z(angle: float)
    func scale_object_local(scale: Vector3)
    func set_disable_scale(disable: bool)
    func set_identity()
    func set_ignore_transform_notification(enabled: bool)
    func set_notify_local_transform(enable: bool)
    func set_notify_transform(enable: bool)
    func set_subgizmo_selection(gizmo: Node3DGizmo, id: int, transform: Transform3D)
    func show()
    func to_global(local_point: Vector3) -> Vector3
    func to_local(global_point: Vector3) -> Vector3
    func translate(offset: Vector3)
    func translate_object_local(offset: Vector3)
    func update_gizmos()

# Object < Node < Node3D < AudioListener3D

  class AudioListener3D extends Node3D:

    func clear_current()
    func get_listener_transform() -> Transform3D
    func is_current() -> bool
    func make_current()

# Object < Node < Node3D < AudioStreamPlayer3D

  class AudioStreamPlayer3D extends Node3D:

    enum AttenuationModel {
      ATTENUATION_INVERSE_DISTANCE = 0,
      ATTENUATION_INVERSE_SQUARE_DISTANCE = 1,
      ATTENUATION_LOGARITHMIC = 2,
      ATTENUATION_DISABLED = 3,
    }

    enum DopplerTracking {
      DOPPLER_TRACKING_DISABLED = 0,
      DOPPLER_TRACKING_IDLE_STEP = 1,
      DOPPLER_TRACKING_PHYSICS_STEP = 2,
    }

    var area_mask: int = 1
    var attenuation_filter_cutoff_hz: float = 5000.0
    var attenuation_filter_db: float = -24.0
    var attenuation_model: enum AttenuationModel = ATTENUATION_INVERSE_DISTANCE
    var autoplay: bool = false
    var bus: StringName = "Master"
    var doppler_tracking: enum DopplerTracking = DOPPLER_TRACKING_DISABLED
    var emission_angle_degrees: float = 45.0
    var emission_angle_enabled: bool = false
    var emission_angle_filter_attenuation_db: float = -12.0
    var max_db: float = 3.0
    var max_distance: float = 0.0
    var max_polyphony: int = 1
    var panning_strength: float = 1.0
    var pitch_scale: float = 1.0
    var playing: bool = false
    var stream: AudioStream
    var stream_paused: bool = false
    var unit_size: float = 10.0
    var volume_db: float = 0.0

    signal finished()

    func get_playback_position() -> float
    func get_stream_playback() -> AudioStreamPlayback
    func has_stream_playback() -> bool
    func play(from_position: float = 0.0)
    func seek(to_position: float)
    func stop()

# Object < Node < Node3D < BoneAttachment3D

  class BoneAttachment3D extends Node3D:

    var bone_idx: int = -1
    var bone_name: String = ""
    var override_pose: bool = false

    func get_external_skeleton() -> NodePath
    func get_use_external_skeleton() -> bool
    func on_bone_pose_update(bone_index: int)
    func set_external_skeleton(external_skeleton: NodePath)
    func set_use_external_skeleton(use_external_skeleton: bool)

# Object < Node < Node3D < Camera3D

  class Camera3D extends Node3D:

    enum DopplerTracking {
      DOPPLER_TRACKING_DISABLED = 0,
      DOPPLER_TRACKING_IDLE_STEP = 1,
      DOPPLER_TRACKING_PHYSICS_STEP = 2,
    }

    enum KeepAspect {
      KEEP_WIDTH = 0,
      KEEP_HEIGHT = 1,
    }

    enum ProjectionType {
      PROJECTION_PERSPECTIVE = 0,
      PROJECTION_ORTHOGONAL = 1,
      PROJECTION_FRUSTUM = 2,
    }

    var attributes: CameraAttributes
    var cull_mask: int = 1048575
    var current: bool = false
    var doppler_tracking: enum DopplerTracking = DOPPLER_TRACKING_DISABLED
    var environment: Environment
    var far: float = 4000.0
    var fov: float = 75.0
    var frustum_offset: Vector2 = Vector2(0, 0)
    var h_offset: float = 0.0
    var keep_aspect: enum KeepAspect = KEEP_HEIGHT
    var near: float = 0.05
    var projection: enum ProjectionType = PROJECTION_PERSPECTIVE
    var size: float = 1.0
    var v_offset: float = 0.0

    func clear_current(enable_next: bool = true)
    func get_camera_projection() -> Projection
    func get_camera_rid() -> RID
    func get_camera_transform() -> Transform3D
    func get_cull_mask_value(layer_number: int) -> bool
    func get_frustum() -> Array[Plane]
    func get_pyramid_shape_rid() -> RID
    func is_position_behind(world_point: Vector3) -> bool
    func is_position_in_frustum(world_point: Vector3) -> bool
    func make_current()
    func project_local_ray_normal(screen_point: Vector2) -> Vector3
    func project_position(screen_point: Vector2, z_depth: float) -> Vector3
    func project_ray_normal(screen_point: Vector2) -> Vector3
    func project_ray_origin(screen_point: Vector2) -> Vector3
    func set_cull_mask_value(layer_number: int, value: bool)
    func set_frustum(size: float, offset: Vector2, z_near: float, z_far: float)
    func set_orthogonal(size: float, z_near: float, z_far: float)
    func set_perspective(fov: float, z_near: float, z_far: float)
    func unproject_position(world_point: Vector3) -> Vector2

# Object < Node < Node3D < Camera3D < XRCamera3D

  class XRCamera3D extends Camera3D:

    pass 

# Object < Node < Node3D < CollisionObject3D (abstract)

  class CollisionObject3D extends Node3D:

    enum DisableMode {
      DISABLE_MODE_REMOVE = 0,
      DISABLE_MODE_MAKE_STATIC = 1,
      DISABLE_MODE_KEEP_ACTIVE = 2,
    }

    var collision_layer: int = 1
    var collision_mask: int = 1
    var collision_priority: float = 1.0
    var disable_mode: enum DisableMode = DISABLE_MODE_REMOVE
    var input_capture_on_drag: bool = false
    var input_ray_pickable: bool = true

    signal input_event(camera: Node, event: InputEvent, position: Vector3, normal: Vector3, shape_idx: int)
    signal mouse_entered()
    signal mouse_exited()

    func create_shape_owner(owner: Object) -> int
    func get_collision_layer_value(layer_number: int) -> bool
    func get_collision_mask_value(layer_number: int) -> bool
    func get_rid() -> RID
    func get_shape_owners() -> PackedInt32Array
    func is_shape_owner_disabled(owner_id: int) -> bool
    func remove_shape_owner(owner_id: int)
    func set_collision_layer_value(layer_number: int, value: bool)
    func set_collision_mask_value(layer_number: int, value: bool)
    func shape_find_owner(shape_index: int) -> int
    func shape_owner_add_shape(owner_id: int, shape: Shape3D)
    func shape_owner_clear_shapes(owner_id: int)
    func shape_owner_get_owner(owner_id: int) -> Object
    func shape_owner_get_shape(owner_id: int, shape_id: int) -> Shape3D
    func shape_owner_get_shape_count(owner_id: int) -> int
    func shape_owner_get_shape_index(owner_id: int, shape_id: int) -> int
    func shape_owner_get_transform(owner_id: int) -> Transform3D
    func shape_owner_remove_shape(owner_id: int, shape_id: int)
    func shape_owner_set_disabled(owner_id: int, disabled: bool)
    func shape_owner_set_transform(owner_id: int, transform: Transform3D)

    func _input_event(camera: Camera3D, event: InputEvent, position: Vector3, normal: Vector3, shape_idx: int)
    func _mouse_enter()
    func _mouse_exit()

# Object < Node < Node3D < CollisionObject3D < Area3D

  class Area3D extends CollisionObject3D:

    enum SpaceOverride {
      SPACE_OVERRIDE_DISABLED = 0,
      SPACE_OVERRIDE_COMBINE = 1,
      SPACE_OVERRIDE_COMBINE_REPLACE = 2,
      SPACE_OVERRIDE_REPLACE = 3,
      SPACE_OVERRIDE_REPLACE_COMBINE = 4,
    }

    var angular_damp: float = 0.1
    var angular_damp_space_override: enum SpaceOverride = SPACE_OVERRIDE_DISABLED
    var audio_bus_name: StringName = "Master"
    var audio_bus_override: bool = false
    var gravity: float = 9.8
    var gravity_direction: Vector3 = Vector3(0, -1, 0)
    var gravity_point: bool = false
    var gravity_point_center: Vector3 = Vector3(0, -1, 0)
    var gravity_point_unit_distance: float = 0.0
    var gravity_space_override: enum SpaceOverride = SPACE_OVERRIDE_DISABLED
    var linear_damp: float = 0.1
    var linear_damp_space_override: enum SpaceOverride = SPACE_OVERRIDE_DISABLED
    var monitorable: bool = true
    var monitoring: bool = true
    var priority: int = 0
    var reverb_bus_amount: float = 0.0
    var reverb_bus_enabled: bool = false
    var reverb_bus_name: StringName = "Master"
    var reverb_bus_uniformity: float = 0.0
    var wind_attenuation_factor: float = 0.0
    var wind_force_magnitude: float = 0.0
    var wind_source_path: NodePath = NodePath("")

    signal area_entered(area: Area3D)
    signal area_exited(area: Area3D)
    signal area_shape_entered(area_rid: RID, area: Area3D, area_shape_index: int, local_shape_index: int)
    signal area_shape_exited(area_rid: RID, area: Area3D, area_shape_index: int, local_shape_index: int)
    signal body_entered(body: Node3D)
    signal body_exited(body: Node3D)
    signal body_shape_entered(body_rid: RID, body: Node3D, body_shape_index: int, local_shape_index: int)
    signal body_shape_exited(body_rid: RID, body: Node3D, body_shape_index: int, local_shape_index: int)

    func get_overlapping_areas() -> Array[Area3D]
    func get_overlapping_bodies() -> Array[Node3D]
    func has_overlapping_areas() -> bool
    func has_overlapping_bodies() -> bool
    func overlaps_area(area: Node) -> bool
    func overlaps_body(body: Node) -> bool

# Object < Node < Node3D < CollisionObject3D < PhysicsBody3D (abstract)

  class PhysicsBody3D extends CollisionObject3D:

    var axis_lock_angular_x: bool = false
    var axis_lock_angular_y: bool = false
    var axis_lock_angular_z: bool = false
    var axis_lock_linear_x: bool = false
    var axis_lock_linear_y: bool = false
    var axis_lock_linear_z: bool = false

    func add_collision_exception_with(body: Node)
    func get_axis_lock(axis: enum PhysicsServer3D.BodyAxis) -> bool
    func get_collision_exceptions() -> Array[PhysicsBody3D]
    func move_and_collide(motion: Vector3, test_only: bool = false, safe_margin: float = 0.001, recovery_as_collision: bool = false, max_collisions: int = 1) -> KinematicCollision3D
    func remove_collision_exception_with(body: Node)
    func set_axis_lock(axis: enum PhysicsServer3D.BodyAxis, lock: bool)
    func test_move(from: Transform3D, motion: Vector3, collision: KinematicCollision3D = null, safe_margin: float = 0.001, recovery_as_collision: bool = false, max_collisions: int = 1) -> bool

# Object < Node < Node3D < CollisionObject3D < PhysicsBody3D < CharacterBody3D

  class CharacterBody3D extends PhysicsBody3D:

    enum MotionMode {
      MOTION_MODE_GROUNDED = 0,
      MOTION_MODE_FLOATING = 1,
    }

    enum PlatformOnLeave {
      PLATFORM_ON_LEAVE_ADD_VELOCITY = 0,
      PLATFORM_ON_LEAVE_ADD_UPWARD_VELOCITY = 1,
      PLATFORM_ON_LEAVE_DO_NOTHING = 2,
    }

    var floor_block_on_wall: bool = true
    var floor_constant_speed: bool = false
    var floor_max_angle: float = 0.785398
    var floor_snap_length: float = 0.1
    var floor_stop_on_slope: bool = true
    var max_slides: int = 6
    var motion_mode: enum MotionMode = MOTION_MODE_GROUNDED
    var platform_floor_layers: int = 4294967295
    var platform_on_leave: enum PlatformOnLeave = PLATFORM_ON_LEAVE_ADD_VELOCITY
    var platform_wall_layers: int = 0
    var safe_margin: float = 0.001
    var slide_on_ceiling: bool = true
    var up_direction: Vector3 = Vector3(0, 1, 0)
    var velocity: Vector3 = Vector3(0, 0, 0)
    var wall_min_slide_angle: float = 0.261799

    func apply_floor_snap()
    func get_floor_angle(up_direction: Vector3 = Vector3(0, 1, 0)) -> float
    func get_floor_normal() -> Vector3
    func get_last_motion() -> Vector3
    func get_last_slide_collision() -> KinematicCollision3D
    func get_platform_angular_velocity() -> Vector3
    func get_platform_velocity() -> Vector3
    func get_position_delta() -> Vector3
    func get_real_velocity() -> Vector3
    func get_slide_collision(slide_idx: int) -> KinematicCollision3D
    func get_slide_collision_count() -> int
    func get_wall_normal() -> Vector3
    func is_on_ceiling() -> bool
    func is_on_ceiling_only() -> bool
    func is_on_floor() -> bool
    func is_on_floor_only() -> bool
    func is_on_wall() -> bool
    func is_on_wall_only() -> bool
    func move_and_slide() -> bool

# Object < Node < Node3D < CollisionObject3D < PhysicsBody3D < PhysicalBone3D

  class PhysicalBone3D extends PhysicsBody3D:

    enum DampMode {
      DAMP_MODE_COMBINE = 0,
      DAMP_MODE_REPLACE = 1,
    }

    enum JointType {
      JOINT_TYPE_NONE = 0,
      JOINT_TYPE_PIN = 1,
      JOINT_TYPE_CONE = 2,
      JOINT_TYPE_HINGE = 3,
      JOINT_TYPE_SLIDER = 4,
      JOINT_TYPE_6DOF = 5,
    }

    var angular_damp: float = 0.0
    var angular_damp_mode: enum DampMode = DAMP_MODE_COMBINE
    var angular_velocity: Vector3 = Vector3(0, 0, 0)
    var body_offset: Transform3D = Transform3D(Vector3(1, 0, 0), Vector3(0, 1, 0), Vector3(0, 0, 1), Vector3(0, 0, 0))
    var bounce: float = 0.0
    var can_sleep: bool = true
    var custom_integrator: bool = false
    var friction: float = 1.0
    var gravity_scale: float = 1.0
    var joint_offset: Transform3D = Transform3D(Vector3(1, 0, 0), Vector3(0, 1, 0), Vector3(0, 0, 1), Vector3(0, 0, 0))
    var joint_rotation: Vector3 = Vector3(0, 0, 0)
    var joint_type: enum JointType = JOINT_TYPE_NONE
    var linear_damp: float = 0.0
    var linear_damp_mode: enum DampMode = DAMP_MODE_COMBINE
    var linear_velocity: Vector3 = Vector3(0, 0, 0)
    var mass: float = 1.0

    func apply_central_impulse(impulse: Vector3)
    func apply_impulse(impulse: Vector3, position: Vector3 = Vector3(0, 0, 0))
    func get_bone_id() -> int
    func get_simulate_physics() -> bool
    func is_simulating_physics() -> bool

    func _integrate_forces(state: PhysicsDirectBodyState3D)

# Object < Node < Node3D < CollisionObject3D < PhysicsBody3D < RigidBody3D

  class RigidBody3D extends PhysicsBody3D:

    enum CenterOfMassMode {
      CENTER_OF_MASS_MODE_AUTO = 0,
      CENTER_OF_MASS_MODE_CUSTOM = 1,
    }

    enum DampMode {
      DAMP_MODE_COMBINE = 0,
      DAMP_MODE_REPLACE = 1,
    }

    enum FreezeMode {
      FREEZE_MODE_STATIC = 0,
      FREEZE_MODE_KINEMATIC = 1,
    }

    var angular_damp: float = 0.0
    var angular_damp_mode: enum DampMode = DAMP_MODE_COMBINE
    var angular_velocity: Vector3 = Vector3(0, 0, 0)
    var can_sleep: bool = true
    var center_of_mass: Vector3 = Vector3(0, 0, 0)
    var center_of_mass_mode: enum CenterOfMassMode = CENTER_OF_MASS_MODE_AUTO
    var constant_force: Vector3 = Vector3(0, 0, 0)
    var constant_torque: Vector3 = Vector3(0, 0, 0)
    var contact_monitor: bool = false
    var continuous_cd: bool = false
    var custom_integrator: bool = false
    var freeze: bool = false
    var freeze_mode: enum FreezeMode = FREEZE_MODE_STATIC
    var gravity_scale: float = 1.0
    var inertia: Vector3 = Vector3(0, 0, 0)
    var linear_damp: float = 0.0
    var linear_damp_mode: enum DampMode = DAMP_MODE_COMBINE
    var linear_velocity: Vector3 = Vector3(0, 0, 0)
    var lock_rotation: bool = false
    var mass: float = 1.0
    var max_contacts_reported: int = 0
    var physics_material_override: PhysicsMaterial
    var sleeping: bool = false

    signal body_entered(body: Node)
    signal body_exited(body: Node)
    signal body_shape_entered(body_rid: RID, body: Node, body_shape_index: int, local_shape_index: int)
    signal body_shape_exited(body_rid: RID, body: Node, body_shape_index: int, local_shape_index: int)
    signal sleeping_state_changed()

    func add_constant_central_force(force: Vector3)
    func add_constant_force(force: Vector3, position: Vector3 = Vector3(0, 0, 0))
    func add_constant_torque(torque: Vector3)
    func apply_central_force(force: Vector3)
    func apply_central_impulse(impulse: Vector3)
    func apply_force(force: Vector3, position: Vector3 = Vector3(0, 0, 0))
    func apply_impulse(impulse: Vector3, position: Vector3 = Vector3(0, 0, 0))
    func apply_torque(torque: Vector3)
    func apply_torque_impulse(impulse: Vector3)
    func get_colliding_bodies() -> Array[Node3D]
    func get_contact_count() -> int
    func get_inverse_inertia_tensor() -> Basis
    func set_axis_velocity(axis_velocity: Vector3)

    func _integrate_forces(state: PhysicsDirectBodyState3D)

# Object < Node < Node3D < CollisionObject3D < PhysicsBody3D < RigidBody3D < VehicleBody3D

  class VehicleBody3D extends RigidBody3D:

    var brake: float = 0.0
    var engine_force: float = 0.0
    var steering: float = 0.0

# Object < Node < Node3D < CollisionObject3D < PhysicsBody3D < StaticBody3D

  class StaticBody3D extends PhysicsBody3D:

    var constant_angular_velocity: Vector3 = Vector3(0, 0, 0)
    var constant_linear_velocity: Vector3 = Vector3(0, 0, 0)
    var physics_material_override: PhysicsMaterial

# Object < Node < Node3D < CollisionObject3D < PhysicsBody3D < StaticBody3D < AnimatableBody3D

  class AnimatableBody3D extends StaticBody3D:

    var sync_to_physics: bool = true

# Object < Node < Node3D < CollisionPolygon3D

  class CollisionPolygon3D extends Node3D:

    var depth: float = 1.0
    var disabled: bool = false
    var margin: float = 0.04
    var polygon: PackedVector2Array = PackedVector2Array()

# Object < Node < Node3D < CollisionShape3D

  class CollisionShape3D extends Node3D:

    var disabled: bool = false
    var shape: Shape3D

    func make_convex_from_siblings()
    func resource_changed(resource: Resource)

# Object < Node < Node3D < ImporterMeshInstance3D

  class ImporterMeshInstance3D extends Node3D:

    var cast_shadow: enum GeometryInstance3D.ShadowCastingSetting = GeometryInstance3D.SHADOW_CASTING_SETTING_ON
    var layer_mask: int = 1
    var mesh: ImporterMesh
    var skeleton_path: NodePath = NodePath("")
    var skin: Skin
    var visibility_range_begin: float = 0.0
    var visibility_range_begin_margin: float = 0.0
    var visibility_range_end: float = 0.0
    var visibility_range_end_margin: float = 0.0
    var visibility_range_fade_mode: enum GeometryInstance3D.VisibilityRangeFadeMode = GeometryInstance3D.VISIBILITY_RANGE_FADE_DISABLED

# Object < Node < Node3D < Joint3D (abstract)

  class Joint3D extends Node3D:

    var exclude_nodes_from_collision: bool = true
    var node_a: NodePath = NodePath("")
    var node_b: NodePath = NodePath("")
    var solver_priority: int = 1

    func get_rid() -> RID

# Object < Node < Node3D < Joint3D < ConeTwistJoint3D

  class ConeTwistJoint3D extends Joint3D:

    enum Param {
      PARAM_SWING_SPAN = 0,
      PARAM_TWIST_SPAN = 1,
      PARAM_BIAS = 2,
      PARAM_SOFTNESS = 3,
      PARAM_RELAXATION = 4,
      PARAM_MAX = 5,
    }

    var bias: float = 0.3
    var relaxation: float = 1.0
    var softness: float = 0.8
    var swing_span: float = 0.785398
    var twist_span: float = 3.14159

    func get_param(param: enum Param) -> float
    func set_param(param: enum Param, value: float)

# Object < Node < Node3D < Joint3D < Generic6DOFJoint3D

  class Generic6DOFJoint3D extends Joint3D:

    enum Flag {
      FLAG_ENABLE_LINEAR_LIMIT = 0,
      FLAG_ENABLE_ANGULAR_LIMIT = 1,
      FLAG_ENABLE_ANGULAR_SPRING = 2,
      FLAG_ENABLE_LINEAR_SPRING = 3,
      FLAG_ENABLE_MOTOR = 4,
      FLAG_ENABLE_LINEAR_MOTOR = 5,
      FLAG_MAX = 6,
    }

    enum Param {
      PARAM_LINEAR_LOWER_LIMIT = 0,
      PARAM_LINEAR_UPPER_LIMIT = 1,
      PARAM_LINEAR_LIMIT_SOFTNESS = 2,
      PARAM_LINEAR_RESTITUTION = 3,
      PARAM_LINEAR_DAMPING = 4,
      PARAM_LINEAR_MOTOR_TARGET_VELOCITY = 5,
      PARAM_LINEAR_MOTOR_FORCE_LIMIT = 6,
      PARAM_LINEAR_SPRING_STIFFNESS = 7,
      PARAM_LINEAR_SPRING_DAMPING = 8,
      PARAM_LINEAR_SPRING_EQUILIBRIUM_POINT = 9,
      PARAM_ANGULAR_LOWER_LIMIT = 10,
      PARAM_ANGULAR_UPPER_LIMIT = 11,
      PARAM_ANGULAR_LIMIT_SOFTNESS = 12,
      PARAM_ANGULAR_DAMPING = 13,
      PARAM_ANGULAR_RESTITUTION = 14,
      PARAM_ANGULAR_FORCE_LIMIT = 15,
      PARAM_ANGULAR_ERP = 16,
      PARAM_ANGULAR_MOTOR_TARGET_VELOCITY = 17,
      PARAM_ANGULAR_MOTOR_FORCE_LIMIT = 18,
      PARAM_ANGULAR_SPRING_STIFFNESS = 19,
      PARAM_ANGULAR_SPRING_DAMPING = 20,
      PARAM_ANGULAR_SPRING_EQUILIBRIUM_POINT = 21,
      PARAM_MAX = 22,
    }

    var "angular_limit_x/damping": float = 1.0
    var "angular_limit_x/enabled": bool = true
    var "angular_limit_x/erp": float = 0.5
    var "angular_limit_x/force_limit": float = 0.0
    var "angular_limit_x/lower_angle": float = 0.0
    var "angular_limit_x/restitution": float = 0.0
    var "angular_limit_x/softness": float = 0.5
    var "angular_limit_x/upper_angle": float = 0.0
    var "angular_limit_y/damping": float = 1.0
    var "angular_limit_y/enabled": bool = true
    var "angular_limit_y/erp": float = 0.5
    var "angular_limit_y/force_limit": float = 0.0
    var "angular_limit_y/lower_angle": float = 0.0
    var "angular_limit_y/restitution": float = 0.0
    var "angular_limit_y/softness": float = 0.5
    var "angular_limit_y/upper_angle": float = 0.0
    var "angular_limit_z/damping": float = 1.0
    var "angular_limit_z/enabled": bool = true
    var "angular_limit_z/erp": float = 0.5
    var "angular_limit_z/force_limit": float = 0.0
    var "angular_limit_z/lower_angle": float = 0.0
    var "angular_limit_z/restitution": float = 0.0
    var "angular_limit_z/softness": float = 0.5
    var "angular_limit_z/upper_angle": float = 0.0
    var "angular_motor_x/enabled": bool = false
    var "angular_motor_x/force_limit": float = 300.0
    var "angular_motor_x/target_velocity": float = 0.0
    var "angular_motor_y/enabled": bool = false
    var "angular_motor_y/force_limit": float = 300.0
    var "angular_motor_y/target_velocity": float = 0.0
    var "angular_motor_z/enabled": bool = false
    var "angular_motor_z/force_limit": float = 300.0
    var "angular_motor_z/target_velocity": float = 0.0
    var "angular_spring_x/damping": float = 0.0
    var "angular_spring_x/enabled": bool = false
    var "angular_spring_x/equilibrium_point": float = 0.0
    var "angular_spring_x/stiffness": float = 0.0
    var "angular_spring_y/damping": float = 0.0
    var "angular_spring_y/enabled": bool = false
    var "angular_spring_y/equilibrium_point": float = 0.0
    var "angular_spring_y/stiffness": float = 0.0
    var "angular_spring_z/damping": float = 0.0
    var "angular_spring_z/enabled": bool = false
    var "angular_spring_z/equilibrium_point": float = 0.0
    var "angular_spring_z/stiffness": float = 0.0
    var "linear_limit_x/damping": float = 1.0
    var "linear_limit_x/enabled": bool = true
    var "linear_limit_x/lower_distance": float = 0.0
    var "linear_limit_x/restitution": float = 0.5
    var "linear_limit_x/softness": float = 0.7
    var "linear_limit_x/upper_distance": float = 0.0
    var "linear_limit_y/damping": float = 1.0
    var "linear_limit_y/enabled": bool = true
    var "linear_limit_y/lower_distance": float = 0.0
    var "linear_limit_y/restitution": float = 0.5
    var "linear_limit_y/softness": float = 0.7
    var "linear_limit_y/upper_distance": float = 0.0
    var "linear_limit_z/damping": float = 1.0
    var "linear_limit_z/enabled": bool = true
    var "linear_limit_z/lower_distance": float = 0.0
    var "linear_limit_z/restitution": float = 0.5
    var "linear_limit_z/softness": float = 0.7
    var "linear_limit_z/upper_distance": float = 0.0
    var "linear_motor_x/enabled": bool = false
    var "linear_motor_x/force_limit": float = 0.0
    var "linear_motor_x/target_velocity": float = 0.0
    var "linear_motor_y/enabled": bool = false
    var "linear_motor_y/force_limit": float = 0.0
    var "linear_motor_y/target_velocity": float = 0.0
    var "linear_motor_z/enabled": bool = false
    var "linear_motor_z/force_limit": float = 0.0
    var "linear_motor_z/target_velocity": float = 0.0
    var "linear_spring_x/damping": float = 0.01
    var "linear_spring_x/enabled": bool = false
    var "linear_spring_x/equilibrium_point": float = 0.0
    var "linear_spring_x/stiffness": float = 0.01
    var "linear_spring_y/damping": float = 0.01
    var "linear_spring_y/enabled": bool = false
    var "linear_spring_y/equilibrium_point": float = 0.0
    var "linear_spring_y/stiffness": float = 0.01
    var "linear_spring_z/damping": float = 0.01
    var "linear_spring_z/enabled": bool = false
    var "linear_spring_z/equilibrium_point": float = 0.0
    var "linear_spring_z/stiffness": float = 0.01

    func get_flag_x(flag: enum Flag) -> bool
    func get_flag_y(flag: enum Flag) -> bool
    func get_flag_z(flag: enum Flag) -> bool
    func get_param_x(param: enum Param) -> float
    func get_param_y(param: enum Param) -> float
    func get_param_z(param: enum Param) -> float
    func set_flag_x(flag: enum Flag, value: bool)
    func set_flag_y(flag: enum Flag, value: bool)
    func set_flag_z(flag: enum Flag, value: bool)
    func set_param_x(param: enum Param, value: float)
    func set_param_y(param: enum Param, value: float)
    func set_param_z(param: enum Param, value: float)

# Object < Node < Node3D < Joint3D < HingeJoint3D

  class HingeJoint3D extends Joint3D:

    enum Flag {
      FLAG_USE_LIMIT = 0,
      FLAG_ENABLE_MOTOR = 1,
      FLAG_MAX = 2,
    }

    enum Param {
      PARAM_BIAS = 0,
      PARAM_LIMIT_UPPER = 1,
      PARAM_LIMIT_LOWER = 2,
      PARAM_LIMIT_BIAS = 3,
      PARAM_LIMIT_SOFTNESS = 4,
      PARAM_LIMIT_RELAXATION = 5,
      PARAM_MOTOR_TARGET_VELOCITY = 6,
      PARAM_MOTOR_MAX_IMPULSE = 7,
      PARAM_MAX = 8,
    }

    var "angular_limit/bias": float = 0.3
    var "angular_limit/enable": bool = false
    var "angular_limit/lower": float = -1.5708
    var "angular_limit/relaxation": float = 1.0
    var "angular_limit/softness": float = 0.9
    var "angular_limit/upper": float = 1.5708
    var "motor/enable": bool = false
    var "motor/max_impulse": float = 1.0
    var "motor/target_velocity": float = 1.0
    var "params/bias": float = 0.3

    func get_flag(flag: enum Flag) -> bool
    func get_param(param: enum Param) -> float
    func set_flag(flag: enum Flag, enabled: bool)
    func set_param(param: enum Param, value: float)

# Object < Node < Node3D < Joint3D < PinJoint3D

  class PinJoint3D extends Joint3D:

    enum Param {
      PARAM_BIAS = 0,
      PARAM_DAMPING = 1,
      PARAM_IMPULSE_CLAMP = 2,
    }

    var "params/bias": float = 0.3
    var "params/damping": float = 1.0
    var "params/impulse_clamp": float = 0.0

    func get_param(param: enum Param) -> float
    func set_param(param: enum Param, value: float)

# Object < Node < Node3D < Joint3D < SliderJoint3D

  class SliderJoint3D extends Joint3D:

    enum Param {
      PARAM_LINEAR_LIMIT_UPPER = 0,
      PARAM_LINEAR_LIMIT_LOWER = 1,
      PARAM_LINEAR_LIMIT_SOFTNESS = 2,
      PARAM_LINEAR_LIMIT_RESTITUTION = 3,
      PARAM_LINEAR_LIMIT_DAMPING = 4,
      PARAM_LINEAR_MOTION_SOFTNESS = 5,
      PARAM_LINEAR_MOTION_RESTITUTION = 6,
      PARAM_LINEAR_MOTION_DAMPING = 7,
      PARAM_LINEAR_ORTHOGONAL_SOFTNESS = 8,
      PARAM_LINEAR_ORTHOGONAL_RESTITUTION = 9,
      PARAM_LINEAR_ORTHOGONAL_DAMPING = 10,
      PARAM_ANGULAR_LIMIT_UPPER = 11,
      PARAM_ANGULAR_LIMIT_LOWER = 12,
      PARAM_ANGULAR_LIMIT_SOFTNESS = 13,
      PARAM_ANGULAR_LIMIT_RESTITUTION = 14,
      PARAM_ANGULAR_LIMIT_DAMPING = 15,
      PARAM_ANGULAR_MOTION_SOFTNESS = 16,
      PARAM_ANGULAR_MOTION_RESTITUTION = 17,
      PARAM_ANGULAR_MOTION_DAMPING = 18,
      PARAM_ANGULAR_ORTHOGONAL_SOFTNESS = 19,
      PARAM_ANGULAR_ORTHOGONAL_RESTITUTION = 20,
      PARAM_ANGULAR_ORTHOGONAL_DAMPING = 21,
      PARAM_MAX = 22,
    }

    var "angular_limit/damping": float = 0.0
    var "angular_limit/lower_angle": float = 0.0
    var "angular_limit/restitution": float = 0.7
    var "angular_limit/softness": float = 1.0
    var "angular_limit/upper_angle": float = 0.0
    var "angular_motion/damping": float = 1.0
    var "angular_motion/restitution": float = 0.7
    var "angular_motion/softness": float = 1.0
    var "angular_ortho/damping": float = 1.0
    var "angular_ortho/restitution": float = 0.7
    var "angular_ortho/softness": float = 1.0
    var "linear_limit/damping": float = 1.0
    var "linear_limit/lower_distance": float = -1.0
    var "linear_limit/restitution": float = 0.7
    var "linear_limit/softness": float = 1.0
    var "linear_limit/upper_distance": float = 1.0
    var "linear_motion/damping": float = 0.0
    var "linear_motion/restitution": float = 0.7
    var "linear_motion/softness": float = 1.0
    var "linear_ortho/damping": float = 1.0
    var "linear_ortho/restitution": float = 0.7
    var "linear_ortho/softness": float = 1.0

    func get_param(param: enum Param) -> float
    func set_param(param: enum Param, value: float)

# Object < Node < Node3D < LightmapProbe

  class LightmapProbe extends Node3D:

    pass 

# Object < Node < Node3D < Marker3D

  class Marker3D extends Node3D:

    var gizmo_extents: float = 0.25

# Object < Node < Node3D < NavigationLink3D

  class NavigationLink3D extends Node3D:

    var bidirectional: bool = true
    var enabled: bool = true
    var end_position: Vector3 = Vector3(0, 0, 0)
    var enter_cost: float = 0.0
    var navigation_layers: int = 1
    var start_position: Vector3 = Vector3(0, 0, 0)
    var travel_cost: float = 1.0

    func get_global_end_position() -> Vector3
    func get_global_start_position() -> Vector3
    func get_navigation_layer_value(layer_number: int) -> bool
    func get_rid() -> RID
    func set_global_end_position(position: Vector3)
    func set_global_start_position(position: Vector3)
    func set_navigation_layer_value(layer_number: int, value: bool)

# Object < Node < Node3D < NavigationObstacle3D

  class NavigationObstacle3D extends Node3D:

    var avoidance_enabled: bool = true
    var avoidance_layers: int = 1
    var height: float = 1.0
    var radius: float = 0.0
    var use_3d_avoidance: bool = false
    var velocity: Vector3 = Vector3(0, 0, 0)
    var vertices: PackedVector3Array = PackedVector3Array()

    func get_avoidance_layer_value(layer_number: int) -> bool
    func get_navigation_map() -> RID
    func get_rid() -> RID
    func set_avoidance_layer_value(layer_number: int, value: bool)
    func set_navigation_map(navigation_map: RID)

# Object < Node < Node3D < NavigationRegion3D

  class NavigationRegion3D extends Node3D:

    var enabled: bool = true
    var enter_cost: float = 0.0
    var navigation_layers: int = 1
    var navigation_mesh: NavigationMesh
    var travel_cost: float = 1.0
    var use_edge_connections: bool = true

    signal bake_finished()
    signal navigation_mesh_changed()

    func bake_navigation_mesh(on_thread: bool = true)
    func get_navigation_layer_value(layer_number: int) -> bool
    func get_navigation_map() -> RID
    func get_region_rid() -> RID
    func get_rid() -> RID
    func set_navigation_layer_value(layer_number: int, value: bool)
    func set_navigation_map(navigation_map: RID)

# Object < Node < Node3D < OccluderInstance3D

  class OccluderInstance3D extends Node3D:

    var bake_mask: int = 4294967295
    var bake_simplification_distance: float = 0.1
    var occluder: Occluder3D

    func get_bake_mask_value(layer_number: int) -> bool
    func set_bake_mask_value(layer_number: int, value: bool)

# Object < Node < Node3D < Path3D

  class Path3D extends Node3D:

    var curve: Curve3D

    signal curve_changed()

# Object < Node < Node3D < PathFollow3D

  class PathFollow3D extends Node3D:

    enum RotationMode {
      ROTATION_NONE = 0,
      ROTATION_Y = 1,
      ROTATION_XY = 2,
      ROTATION_XYZ = 3,
      ROTATION_ORIENTED = 4,
    }

    static func correct_posture(transform: Transform3D, rotation_mode: enum RotationMode) -> Transform3D

    var cubic_interp: bool = true
    var h_offset: float = 0.0
    var loop: bool = true
    var progress: float = 0.0
    var progress_ratio: float = 0.0
    var rotation_mode: enum RotationMode = ROTATION_XYZ
    var tilt_enabled: bool = true
    var use_model_front: bool = false
    var v_offset: float = 0.0

# Object < Node < Node3D < RayCast3D

  class RayCast3D extends Node3D:

    var collide_with_areas: bool = false
    var collide_with_bodies: bool = true
    var collision_mask: int = 1
    var debug_shape_custom_color: Color = Color(0, 0, 0, 1)
    var debug_shape_thickness: int = 2
    var enabled: bool = true
    var exclude_parent: bool = true
    var hit_back_faces: bool = true
    var hit_from_inside: bool = false
    var target_position: Vector3 = Vector3(0, -1, 0)

    func add_exception(node: CollisionObject3D)
    func add_exception_rid(rid: RID)
    func clear_exceptions()
    func force_raycast_update()
    func get_collider() -> Object
    func get_collider_rid() -> RID
    func get_collider_shape() -> int
    func get_collision_face_index() -> int
    func get_collision_mask_value(layer_number: int) -> bool
    func get_collision_normal() -> Vector3
    func get_collision_point() -> Vector3
    func is_colliding() -> bool
    func remove_exception(node: CollisionObject3D)
    func remove_exception_rid(rid: RID)
    func set_collision_mask_value(layer_number: int, value: bool)

# Object < Node < Node3D < RemoteTransform3D

  class RemoteTransform3D extends Node3D:

    var remote_path: NodePath = NodePath("")
    var update_position: bool = true
    var update_rotation: bool = true
    var update_scale: bool = true
    var use_global_coordinates: bool = true

    func force_update_cache()

# Object < Node < Node3D < ShapeCast3D

  class ShapeCast3D extends Node3D:

    var collide_with_areas: bool = false
    var collide_with_bodies: bool = true
    var collision_mask: int = 1
    var collision_result: Array = []
    var debug_shape_custom_color: Color = Color(0, 0, 0, 1)
    var enabled: bool = true
    var exclude_parent: bool = true
    var margin: float = 0.0
    var max_results: int = 32
    var shape: Shape3D
    var target_position: Vector3 = Vector3(0, -1, 0)

    func add_exception(node: CollisionObject3D)
    func add_exception_rid(rid: RID)
    func clear_exceptions()
    func force_shapecast_update()
    func get_closest_collision_safe_fraction() -> float
    func get_closest_collision_unsafe_fraction() -> float
    func get_collider(index: int) -> Object
    func get_collider_rid(index: int) -> RID
    func get_collider_shape(index: int) -> int
    func get_collision_count() -> int
    func get_collision_mask_value(layer_number: int) -> bool
    func get_collision_normal(index: int) -> Vector3
    func get_collision_point(index: int) -> Vector3
    func is_colliding() -> bool
    func remove_exception(node: CollisionObject3D)
    func remove_exception_rid(rid: RID)
    func resource_changed(resource: Resource)
    func set_collision_mask_value(layer_number: int, value: bool)

# Object < Node < Node3D < Skeleton3D

  class Skeleton3D extends Node3D:

    enum Notification {
      NOTIFICATION_UPDATE_SKELETON = 50,
    }

    var animate_physical_bones: bool = true
    var motion_scale: float = 1.0
    var show_rest_only: bool = false

    signal bone_enabled_changed(bone_idx: int)
    signal bone_pose_changed(bone_idx: int)
    signal pose_updated()
    signal show_rest_only_changed()

    func add_bone(name: String)
    func clear_bones()
    func clear_bones_global_pose_override()
    func create_skin_from_rest_transforms() -> Skin
    func find_bone(name: String) -> int
    func force_update_all_bone_transforms()
    func force_update_bone_child_transform(bone_idx: int)
    func get_bone_children(bone_idx: int) -> PackedInt32Array
    func get_bone_count() -> int
    func get_bone_global_pose(bone_idx: int) -> Transform3D
    func get_bone_global_pose_no_override(bone_idx: int) -> Transform3D
    func get_bone_global_pose_override(bone_idx: int) -> Transform3D
    func get_bone_global_rest(bone_idx: int) -> Transform3D
    func get_bone_name(bone_idx: int) -> String
    func get_bone_parent(bone_idx: int) -> int
    func get_bone_pose(bone_idx: int) -> Transform3D
    func get_bone_pose_position(bone_idx: int) -> Vector3
    func get_bone_pose_rotation(bone_idx: int) -> Quaternion
    func get_bone_pose_scale(bone_idx: int) -> Vector3
    func get_bone_rest(bone_idx: int) -> Transform3D
    func get_parentless_bones() -> PackedInt32Array
    func get_version() -> int
    func is_bone_enabled(bone_idx: int) -> bool
    func localize_rests()
    func physical_bones_add_collision_exception(exception: RID)
    func physical_bones_remove_collision_exception(exception: RID)
    func physical_bones_start_simulation(bones: Array[StringName] = [])
    func physical_bones_stop_simulation()
    func register_skin(skin: Skin) -> SkinReference
    func reset_bone_pose(bone_idx: int)
    func reset_bone_poses()
    func set_bone_enabled(bone_idx: int, enabled: bool = true)
    func set_bone_global_pose_override(bone_idx: int, pose: Transform3D, amount: float, persistent: bool = false)
    func set_bone_name(bone_idx: int, name: String)
    func set_bone_parent(bone_idx: int, parent_idx: int)
    func set_bone_pose_position(bone_idx: int, position: Vector3)
    func set_bone_pose_rotation(bone_idx: int, rotation: Quaternion)
    func set_bone_pose_scale(bone_idx: int, scale: Vector3)
    func set_bone_rest(bone_idx: int, rest: Transform3D)
    func unparent_bone_and_rest(bone_idx: int)

# Object < Node < Node3D < SpringArm3D

  class SpringArm3D extends Node3D:

    var collision_mask: int = 1
    var margin: float = 0.01
    var shape: Shape3D
    var spring_length: float = 1.0

    func add_excluded_object(RID: RID)
    func clear_excluded_objects()
    func get_hit_length() -> float
    func remove_excluded_object(RID: RID) -> bool

# Object < Node < Node3D < VehicleWheel3D

  class VehicleWheel3D extends Node3D:

    var brake: float = 0.0
    var damping_compression: float = 0.83
    var damping_relaxation: float = 0.88
    var engine_force: float = 0.0
    var steering: float = 0.0
    var suspension_max_force: float = 6000.0
    var suspension_stiffness: float = 5.88
    var suspension_travel: float = 0.2
    var use_as_steering: bool = false
    var use_as_traction: bool = false
    var wheel_friction_slip: float = 10.5
    var wheel_radius: float = 0.5
    var wheel_rest_length: float = 0.15
    var wheel_roll_influence: float = 0.1

    func get_contact_body() -> Node3D
    func get_rpm() -> float
    func get_skidinfo() -> float
    func is_in_contact() -> bool

# Object < Node < Node3D < VisualInstance3D

  class VisualInstance3D extends Node3D:

    var layers: int = 1
    var sorting_offset: float = 0.0
    var sorting_use_aabb_center: bool

    func get_aabb() -> AABB
    func get_base() -> RID
    func get_instance() -> RID
    func get_layer_mask_value(layer_number: int) -> bool
    func set_base(base: RID)
    func set_layer_mask_value(layer_number: int, value: bool)

    func _get_aabb() -> AABB

# Object < Node < Node3D < VisualInstance3D < Decal

  class Decal extends VisualInstance3D:

    enum DecalTexture {
      TEXTURE_ALBEDO = 0,
      TEXTURE_NORMAL = 1,
      TEXTURE_ORM = 2,
      TEXTURE_EMISSION = 3,
      TEXTURE_MAX = 4,
    }

    var albedo_mix: float = 1.0
    var cull_mask: int = 1048575
    var distance_fade_begin: float = 40.0
    var distance_fade_enabled: bool = false
    var distance_fade_length: float = 10.0
    var emission_energy: float = 1.0
    var lower_fade: float = 0.3
    var modulate: Color = Color(1, 1, 1, 1)
    var normal_fade: float = 0.0
    var size: Vector3 = Vector3(2, 2, 2)
    var texture_albedo: Texture2D
    var texture_emission: Texture2D
    var texture_normal: Texture2D
    var texture_orm: Texture2D
    var upper_fade: float = 0.3

    func get_texture(type: enum DecalTexture) -> Texture2D
    func set_texture(type: enum DecalTexture, texture: Texture2D)

# Object < Node < Node3D < VisualInstance3D < FogVolume

  class FogVolume extends VisualInstance3D:

    var material: Material
    var shape: enum RenderingServer.FogVolumeShape = RenderingServer.FOG_VOLUME_SHAPE_BOX
    var size: Vector3 = Vector3(2, 2, 2)

# Object < Node < Node3D < VisualInstance3D < GeometryInstance3D

  class GeometryInstance3D extends VisualInstance3D:

    enum GIMode {
      GI_MODE_DISABLED = 0,
      GI_MODE_STATIC = 1,
      GI_MODE_DYNAMIC = 2,
    }

    enum LightmapScale {
      LIGHTMAP_SCALE_1X = 0,
      LIGHTMAP_SCALE_2X = 1,
      LIGHTMAP_SCALE_4X = 2,
      LIGHTMAP_SCALE_8X = 3,
      LIGHTMAP_SCALE_MAX = 4,
    }

    enum ShadowCastingSetting {
      SHADOW_CASTING_SETTING_OFF = 0,
      SHADOW_CASTING_SETTING_ON = 1,
      SHADOW_CASTING_SETTING_DOUBLE_SIDED = 2,
      SHADOW_CASTING_SETTING_SHADOWS_ONLY = 3,
    }

    enum VisibilityRangeFadeMode {
      VISIBILITY_RANGE_FADE_DISABLED = 0,
      VISIBILITY_RANGE_FADE_SELF = 1,
      VISIBILITY_RANGE_FADE_DEPENDENCIES = 2,
    }

    var cast_shadow: enum ShadowCastingSetting = SHADOW_CASTING_SETTING_ON
    var custom_aabb: AABB = AABB(Vector3(0, 0, 0), Vector3(0, 0, 0))
    var extra_cull_margin: float = 0.0
    var gi_lightmap_scale: enum LightmapScale = LIGHTMAP_SCALE_1X
    var gi_mode: enum GIMode = GI_MODE_STATIC
    var ignore_occlusion_culling: bool = false
    var lod_bias: float = 1.0
    var material_overlay: Material
    var material_override: Material
    var transparency: float = 0.0
    var visibility_range_begin: float = 0.0
    var visibility_range_begin_margin: float = 0.0
    var visibility_range_end: float = 0.0
    var visibility_range_end_margin: float = 0.0
    var visibility_range_fade_mode: enum VisibilityRangeFadeMode = VISIBILITY_RANGE_FADE_DISABLED

    func get_instance_shader_parameter(name: StringName) -> Variant
    func set_instance_shader_parameter(name: StringName, value: Variant)

# Object < Node < Node3D < VisualInstance3D < GeometryInstance3D < CPUParticles3D

  class CPUParticles3D extends GeometryInstance3D:

    enum DrawOrder {
      DRAW_ORDER_INDEX = 0,
      DRAW_ORDER_LIFETIME = 1,
      DRAW_ORDER_VIEW_DEPTH = 2,
    }

    enum EmissionShape {
      EMISSION_SHAPE_POINT = 0,
      EMISSION_SHAPE_SPHERE = 1,
      EMISSION_SHAPE_SPHERE_SURFACE = 2,
      EMISSION_SHAPE_BOX = 3,
      EMISSION_SHAPE_POINTS = 4,
      EMISSION_SHAPE_DIRECTED_POINTS = 5,
      EMISSION_SHAPE_RING = 6,
      EMISSION_SHAPE_MAX = 7,
    }

    enum Parameter {
      PARAM_INITIAL_LINEAR_VELOCITY = 0,
      PARAM_ANGULAR_VELOCITY = 1,
      PARAM_ORBIT_VELOCITY = 2,
      PARAM_LINEAR_ACCEL = 3,
      PARAM_RADIAL_ACCEL = 4,
      PARAM_TANGENTIAL_ACCEL = 5,
      PARAM_DAMPING = 6,
      PARAM_ANGLE = 7,
      PARAM_SCALE = 8,
      PARAM_HUE_VARIATION = 9,
      PARAM_ANIM_SPEED = 10,
      PARAM_ANIM_OFFSET = 11,
      PARAM_MAX = 12,
    }

    enum ParticleFlags {
      PARTICLE_FLAG_ALIGN_Y_TO_VELOCITY = 0,
      PARTICLE_FLAG_ROTATE_Y = 1,
      PARTICLE_FLAG_DISABLE_Z = 2,
      PARTICLE_FLAG_MAX = 3,
    }

    var amount: int = 8
    var angle_curve: Curve
    var angle_max: float = 0.0
    var angle_min: float = 0.0
    var angular_velocity_curve: Curve
    var angular_velocity_max: float = 0.0
    var angular_velocity_min: float = 0.0
    var anim_offset_curve: Curve
    var anim_offset_max: float = 0.0
    var anim_offset_min: float = 0.0
    var anim_speed_curve: Curve
    var anim_speed_max: float = 0.0
    var anim_speed_min: float = 0.0
    var color: Color = Color(1, 1, 1, 1)
    var color_initial_ramp: Gradient
    var color_ramp: Gradient
    var damping_curve: Curve
    var damping_max: float = 0.0
    var damping_min: float = 0.0
    var direction: Vector3 = Vector3(1, 0, 0)
    var draw_order: enum DrawOrder = DRAW_ORDER_INDEX
    var emission_box_extents: Vector3
    var emission_colors: PackedColorArray = PackedColorArray()
    var emission_normals: PackedVector3Array
    var emission_points: PackedVector3Array
    var emission_ring_axis: Vector3
    var emission_ring_height: float
    var emission_ring_inner_radius: float
    var emission_ring_radius: float
    var emission_shape: enum EmissionShape = EMISSION_SHAPE_POINT
    var emission_sphere_radius: float
    var emitting: bool = true
    var explosiveness: float = 0.0
    var fixed_fps: int = 0
    var flatness: float = 0.0
    var fract_delta: bool = true
    var gravity: Vector3 = Vector3(0, -9.8, 0)
    var hue_variation_curve: Curve
    var hue_variation_max: float = 0.0
    var hue_variation_min: float = 0.0
    var initial_velocity_max: float = 0.0
    var initial_velocity_min: float = 0.0
    var lifetime: float = 1.0
    var lifetime_randomness: float = 0.0
    var linear_accel_curve: Curve
    var linear_accel_max: float = 0.0
    var linear_accel_min: float = 0.0
    var local_coords: bool = false
    var mesh: Mesh
    var one_shot: bool = false
    var orbit_velocity_curve: Curve
    var orbit_velocity_max: float
    var orbit_velocity_min: float
    var particle_flag_align_y: bool = false
    var particle_flag_disable_z: bool = false
    var particle_flag_rotate_y: bool = false
    var preprocess: float = 0.0
    var radial_accel_curve: Curve
    var radial_accel_max: float = 0.0
    var radial_accel_min: float = 0.0
    var randomness: float = 0.0
    var scale_amount_curve: Curve
    var scale_amount_max: float = 1.0
    var scale_amount_min: float = 1.0
    var scale_curve_x: Curve
    var scale_curve_y: Curve
    var scale_curve_z: Curve
    var speed_scale: float = 1.0
    var split_scale: bool = false
    var spread: float = 45.0
    var tangential_accel_curve: Curve
    var tangential_accel_max: float = 0.0
    var tangential_accel_min: float = 0.0

    signal finished()

    func convert_from_particles(particles: Node)
    func get_param_curve(param: enum Parameter) -> Curve
    func get_param_max(param: enum Parameter) -> float
    func get_param_min(param: enum Parameter) -> float
    func get_particle_flag(particle_flag: enum ParticleFlags) -> bool
    func restart()
    func set_param_curve(param: enum Parameter, curve: Curve)
    func set_param_max(param: enum Parameter, value: float)
    func set_param_min(param: enum Parameter, value: float)
    func set_particle_flag(particle_flag: enum ParticleFlags, enable: bool)

# Object < Node < Node3D < VisualInstance3D < GeometryInstance3D < GPUParticles3D

  class GPUParticles3D extends GeometryInstance3D:

    const MAX_DRAW_PASSES = 4

    enum DrawOrder {
      DRAW_ORDER_INDEX = 0,
      DRAW_ORDER_LIFETIME = 1,
      DRAW_ORDER_REVERSE_LIFETIME = 2,
      DRAW_ORDER_VIEW_DEPTH = 3,
    }

    enum EmitFlags {
      EMIT_FLAG_POSITION = 1,
      EMIT_FLAG_ROTATION_SCALE = 2,
      EMIT_FLAG_VELOCITY = 4,
      EMIT_FLAG_COLOR = 8,
      EMIT_FLAG_CUSTOM = 16,
    }

    enum TransformAlign {
      TRANSFORM_ALIGN_DISABLED = 0,
      TRANSFORM_ALIGN_Z_BILLBOARD = 1,
      TRANSFORM_ALIGN_Y_TO_VELOCITY = 2,
      TRANSFORM_ALIGN_Z_BILLBOARD_Y_TO_VELOCITY = 3,
    }

    var amount: int = 8
    var amount_ratio: float = 1.0
    var collision_base_size: float = 0.01
    var draw_order: enum DrawOrder = DRAW_ORDER_INDEX
    var draw_pass_1: Mesh
    var draw_pass_2: Mesh
    var draw_pass_3: Mesh
    var draw_pass_4: Mesh
    var draw_passes: int = 1
    var draw_skin: Skin
    var emitting: bool = true
    var explosiveness: float = 0.0
    var fixed_fps: int = 30
    var fract_delta: bool = true
    var interp_to_end: float = 0.0
    var interpolate: bool = true
    var lifetime: float = 1.0
    var local_coords: bool = false
    var one_shot: bool = false
    var preprocess: float = 0.0
    var process_material: Material
    var randomness: float = 0.0
    var speed_scale: float = 1.0
    var sub_emitter: NodePath = NodePath("")
    var trail_enabled: bool = false
    var trail_lifetime: float = 0.3
    var transform_align: enum TransformAlign = TRANSFORM_ALIGN_DISABLED
    var visibility_aabb: AABB = AABB(Vector3(-4, -4, -4), Vector3(8, 8, 8))

    signal finished()

    func capture_aabb() -> AABB
    func convert_from_particles(particles: Node)
    func emit_particle(xform: Transform3D, velocity: Vector3, color: Color, custom: Color, flags: enum EmitFlags)
    func get_draw_pass_mesh(pass: int) -> Mesh
    func restart()
    func set_draw_pass_mesh(pass: int, mesh: Mesh)

# Object < Node < Node3D < VisualInstance3D < GeometryInstance3D < Label3D

  class Label3D extends GeometryInstance3D:

    enum AlphaCutMode {
      ALPHA_CUT_DISABLED = 0,
      ALPHA_CUT_DISCARD = 1,
      ALPHA_CUT_OPAQUE_PREPASS = 2,
      ALPHA_CUT_HASH = 3,
    }

    enum DrawFlags {
      FLAG_SHADED = 0,
      FLAG_DOUBLE_SIDED = 1,
      FLAG_DISABLE_DEPTH_TEST = 2,
      FLAG_FIXED_SIZE = 3,
      FLAG_MAX = 4,
    }

    var alpha_antialiasing_edge: float = 0.0
    var alpha_antialiasing_mode: enum BaseMaterial3D.AlphaAntiAliasing = BaseMaterial3D.ALPHA_ANTIALIASING_OFF
    var alpha_cut: enum AlphaCutMode = ALPHA_CUT_DISABLED
    var alpha_hash_scale: float = 1.0
    var alpha_scissor_threshold: float = 0.5
    var autowrap_mode: enum TextServer.AutowrapMode = TextServer.AUTOWRAP_OFF
    var billboard: enum BaseMaterial3D.BillboardMode = BaseMaterial3D.BILLBOARD_DISABLED
    var double_sided: bool = true
    var fixed_size: bool = false
    var font: Font
    var font_size: int = 32
    var horizontal_alignment: enum HorizontalAlignment = HORIZONTAL_ALIGNMENT_CENTER
    var justification_flags: enum TextServer.JustificationFlag = TextServer.JUSTIFICATION_KASHIDA & TextServer.JUSTIFICATION_WORD_BOUND & TextServer.JUSTIFICATION_SKIP_LAST_LINE & TextServer.JUSTIFICATION_DO_NOT_SKIP_SINGLE_LINE
    var language: String = ""
    var line_spacing: float = 0.0
    var modulate: Color = Color(1, 1, 1, 1)
    var no_depth_test: bool = false
    var offset: Vector2 = Vector2(0, 0)
    var outline_modulate: Color = Color(0, 0, 0, 1)
    var outline_render_priority: int = -1
    var outline_size: int = 12
    var pixel_size: float = 0.005
    var render_priority: int = 0
    var shaded: bool = false
    var structured_text_bidi_override: enum TextServer.StructuredTextParser = TextServer.STRUCTURED_TEXT_DEFAULT
    var structured_text_bidi_override_options: Array = []
    var text: String = ""
    var text_direction: enum TextServer.Direction = TextServer.DIRECTION_AUTO
    var texture_filter: enum BaseMaterial3D.TextureFilter = BaseMaterial3D.TEXTURE_FILTER_LINEAR_WITH_MIPMAPS
    var uppercase: bool = false
    var vertical_alignment: enum VerticalAlignment = VERTICAL_ALIGNMENT_CENTER
    var width: float = 500.0

    func generate_triangle_mesh() -> TriangleMesh
    func get_draw_flag(flag: enum DrawFlags) -> bool
    func set_draw_flag(flag: enum DrawFlags, enabled: bool)

# Object < Node < Node3D < VisualInstance3D < GeometryInstance3D < MeshInstance3D

  class MeshInstance3D extends GeometryInstance3D:

    var mesh: Mesh
    var skeleton: NodePath = NodePath("..")
    var skin: Skin

    func create_convex_collision(clean: bool = true, simplify: bool = false)
    func create_debug_tangents()
    func create_multiple_convex_collisions(settings: MeshConvexDecompositionSettings = null)
    func create_trimesh_collision()
    func find_blend_shape_by_name(name: StringName) -> int
    func get_active_material(surface: int) -> Material
    func get_blend_shape_count() -> int
    func get_blend_shape_value(blend_shape_idx: int) -> float
    func get_surface_override_material(surface: int) -> Material
    func get_surface_override_material_count() -> int
    func set_blend_shape_value(blend_shape_idx: int, value: float)
    func set_surface_override_material(surface: int, material: Material)

# Object < Node < Node3D < VisualInstance3D < GeometryInstance3D < MeshInstance3D < SoftBody3D

  class SoftBody3D extends MeshInstance3D:

    enum DisableMode {
      DISABLE_MODE_REMOVE = 0,
      DISABLE_MODE_KEEP_ACTIVE = 1,
    }

    var collision_layer: int = 1
    var collision_mask: int = 1
    var damping_coefficient: float = 0.01
    var disable_mode: enum DisableMode = DISABLE_MODE_REMOVE
    var drag_coefficient: float = 0.0
    var linear_stiffness: float = 0.5
    var parent_collision_ignore: NodePath = NodePath("")
    var pressure_coefficient: float = 0.0
    var ray_pickable: bool = true
    var simulation_precision: int = 5
    var total_mass: float = 1.0

    func add_collision_exception_with(body: Node)
    func get_collision_exceptions() -> Array[PhysicsBody3D]
    func get_collision_layer_value(layer_number: int) -> bool
    func get_collision_mask_value(layer_number: int) -> bool
    func get_physics_rid() -> RID
    func get_point_transform(point_index: int) -> Vector3
    func is_point_pinned(point_index: int) -> bool
    func remove_collision_exception_with(body: Node)
    func set_collision_layer_value(layer_number: int, value: bool)
    func set_collision_mask_value(layer_number: int, value: bool)
    func set_point_pinned(point_index: int, pinned: bool, attachment_path: NodePath = NodePath(""))

# Object < Node < Node3D < VisualInstance3D < GeometryInstance3D < MultiMeshInstance3D

  class MultiMeshInstance3D extends GeometryInstance3D:

    var multimesh: MultiMesh

# Object < Node < Node3D < VisualInstance3D < GeometryInstance3D < SpriteBase3D (abstract)

  class SpriteBase3D extends GeometryInstance3D:

    enum AlphaCutMode {
      ALPHA_CUT_DISABLED = 0,
      ALPHA_CUT_DISCARD = 1,
      ALPHA_CUT_OPAQUE_PREPASS = 2,
      ALPHA_CUT_HASH = 3,
    }

    enum DrawFlags {
      FLAG_TRANSPARENT = 0,
      FLAG_SHADED = 1,
      FLAG_DOUBLE_SIDED = 2,
      FLAG_DISABLE_DEPTH_TEST = 3,
      FLAG_FIXED_SIZE = 4,
      FLAG_MAX = 5,
    }

    var alpha_antialiasing_edge: float = 0.0
    var alpha_antialiasing_mode: enum BaseMaterial3D.AlphaAntiAliasing = BaseMaterial3D.ALPHA_ANTIALIASING_OFF
    var alpha_cut: enum AlphaCutMode = ALPHA_CUT_DISABLED
    var alpha_hash_scale: float = 1.0
    var alpha_scissor_threshold: float = 0.5
    var axis: enum Vector3.Axis = Vector3.
    var billboard: enum BaseMaterial3D.BillboardMode = BaseMaterial3D.BILLBOARD_DISABLED
    var centered: bool = true
    var double_sided: bool = true
    var fixed_size: bool = false
    var flip_h: bool = false
    var flip_v: bool = false
    var modulate: Color = Color(1, 1, 1, 1)
    var no_depth_test: bool = false
    var offset: Vector2 = Vector2(0, 0)
    var pixel_size: float = 0.01
    var render_priority: int = 0
    var shaded: bool = false
    var texture_filter: enum BaseMaterial3D.TextureFilter = BaseMaterial3D.TEXTURE_FILTER_LINEAR_WITH_MIPMAPS
    var transparent: bool = true

    func generate_triangle_mesh() -> TriangleMesh
    func get_draw_flag(flag: enum DrawFlags) -> bool
    func get_item_rect() -> Rect2
    func set_draw_flag(flag: enum DrawFlags, enabled: bool)

# Object < Node < Node3D < VisualInstance3D < GeometryInstance3D < SpriteBase3D < AnimatedSprite3D

  class AnimatedSprite3D extends SpriteBase3D:

    var animation: StringName = "default"
    var autoplay: String = ""
    var frame: int = 0
    var frame_progress: float = 0.0
    var speed_scale: float = 1.0
    var sprite_frames: SpriteFrames

    signal animation_changed()
    signal animation_finished()
    signal animation_looped()
    signal frame_changed()
    signal sprite_frames_changed()

    func get_playing_speed() -> float
    func is_playing() -> bool
    func pause()
    func play(name: StringName = "", custom_speed: float = 1.0, from_end: bool = false)
    func play_backwards(name: StringName = "")
    func set_frame_and_progress(frame: int, progress: float)
    func stop()

# Object < Node < Node3D < VisualInstance3D < GeometryInstance3D < SpriteBase3D < Sprite3D

  class Sprite3D extends SpriteBase3D:

    var frame: int = 0
    var frame_coords: Vector2i = Vector2i(0, 0)
    var hframes: int = 1
    var region_enabled: bool = false
    var region_rect: Rect2 = Rect2(0, 0, 0, 0)
    var texture: Texture2D
    var vframes: int = 1

    signal frame_changed()
    signal texture_changed()

# Object < Node < Node3D < VisualInstance3D < GPUParticlesAttractor3D (abstract)

  class GPUParticlesAttractor3D extends VisualInstance3D:

    var attenuation: float = 1.0
    var cull_mask: int = 4294967295
    var directionality: float = 0.0
    var strength: float = 1.0

# Object < Node < Node3D < VisualInstance3D < GPUParticlesAttractor3D < GPUParticlesAttractorBox3D

  class GPUParticlesAttractorBox3D extends GPUParticlesAttractor3D:

    var size: Vector3 = Vector3(2, 2, 2)

# Object < Node < Node3D < VisualInstance3D < GPUParticlesAttractor3D < GPUParticlesAttractorSphere3D

  class GPUParticlesAttractorSphere3D extends GPUParticlesAttractor3D:

    var radius: float = 1.0

# Object < Node < Node3D < VisualInstance3D < GPUParticlesAttractor3D < GPUParticlesAttractorVectorField3D

  class GPUParticlesAttractorVectorField3D extends GPUParticlesAttractor3D:

    var size: Vector3 = Vector3(2, 2, 2)
    var texture: Texture3D

# Object < Node < Node3D < VisualInstance3D < GPUParticlesCollision3D (abstract)

  class GPUParticlesCollision3D extends VisualInstance3D:

    var cull_mask: int = 4294967295

# Object < Node < Node3D < VisualInstance3D < GPUParticlesCollision3D < GPUParticlesCollisionBox3D

  class GPUParticlesCollisionBox3D extends GPUParticlesCollision3D:

    var size: Vector3 = Vector3(2, 2, 2)

# Object < Node < Node3D < VisualInstance3D < GPUParticlesCollision3D < GPUParticlesCollisionHeightField3D

  class GPUParticlesCollisionHeightField3D extends GPUParticlesCollision3D:

    enum Resolution {
      RESOLUTION_256 = 0,
      RESOLUTION_512 = 1,
      RESOLUTION_1024 = 2,
      RESOLUTION_2048 = 3,
      RESOLUTION_4096 = 4,
      RESOLUTION_8192 = 5,
      RESOLUTION_MAX = 6,
    }

    enum UpdateMode {
      UPDATE_MODE_WHEN_MOVED = 0,
      UPDATE_MODE_ALWAYS = 1,
    }

    var follow_camera_enabled: bool = false
    var resolution: enum Resolution = RESOLUTION_1024
    var size: Vector3 = Vector3(2, 2, 2)
    var update_mode: enum UpdateMode = UPDATE_MODE_WHEN_MOVED

# Object < Node < Node3D < VisualInstance3D < GPUParticlesCollision3D < GPUParticlesCollisionSDF3D

  class GPUParticlesCollisionSDF3D extends GPUParticlesCollision3D:

    enum Resolution {
      RESOLUTION_16 = 0,
      RESOLUTION_32 = 1,
      RESOLUTION_64 = 2,
      RESOLUTION_128 = 3,
      RESOLUTION_256 = 4,
      RESOLUTION_512 = 5,
      RESOLUTION_MAX = 6,
    }

    var bake_mask: int = 4294967295
    var resolution: enum Resolution = RESOLUTION_64
    var size: Vector3 = Vector3(2, 2, 2)
    var texture: Texture3D
    var thickness: float = 1.0

    func get_bake_mask_value(layer_number: int) -> bool
    func set_bake_mask_value(layer_number: int, value: bool)

# Object < Node < Node3D < VisualInstance3D < GPUParticlesCollision3D < GPUParticlesCollisionSphere3D

  class GPUParticlesCollisionSphere3D extends GPUParticlesCollision3D:

    var radius: float = 1.0

# Object < Node < Node3D < VisualInstance3D < Light3D (abstract)

  class Light3D extends VisualInstance3D:

    enum BakeMode {
      BAKE_DISABLED = 0,
      BAKE_STATIC = 1,
      BAKE_DYNAMIC = 2,
    }

    enum Param {
      PARAM_ENERGY = 0,
      PARAM_INDIRECT_ENERGY = 1,
      PARAM_VOLUMETRIC_FOG_ENERGY = 2,
      PARAM_SPECULAR = 3,
      PARAM_RANGE = 4,
      PARAM_SIZE = 5,
      PARAM_ATTENUATION = 6,
      PARAM_SPOT_ANGLE = 7,
      PARAM_SPOT_ATTENUATION = 8,
      PARAM_SHADOW_MAX_DISTANCE = 9,
      PARAM_SHADOW_SPLIT_1_OFFSET = 10,
      PARAM_SHADOW_SPLIT_2_OFFSET = 11,
      PARAM_SHADOW_SPLIT_3_OFFSET = 12,
      PARAM_SHADOW_FADE_START = 13,
      PARAM_SHADOW_NORMAL_BIAS = 14,
      PARAM_SHADOW_BIAS = 15,
      PARAM_SHADOW_PANCAKE_SIZE = 16,
      PARAM_SHADOW_OPACITY = 17,
      PARAM_SHADOW_BLUR = 18,
      PARAM_TRANSMITTANCE_BIAS = 19,
      PARAM_INTENSITY = 20,
      PARAM_MAX = 21,
    }

    var distance_fade_begin: float = 40.0
    var distance_fade_enabled: bool = false
    var distance_fade_length: float = 10.0
    var distance_fade_shadow: float = 50.0
    var editor_only: bool = false
    var light_angular_distance: float = 0.0
    var light_bake_mode: enum BakeMode = BAKE_DYNAMIC
    var light_color: Color = Color(1, 1, 1, 1)
    var light_cull_mask: int = 4294967295
    var light_energy: float = 1.0
    var light_indirect_energy: float = 1.0
    var light_intensity_lumens: float
    var light_intensity_lux: float
    var light_negative: bool = false
    var light_projector: Texture2D
    var light_size: float = 0.0
    var light_specular: float = 0.5
    var light_temperature: float
    var light_volumetric_fog_energy: float = 1.0
    var shadow_bias: float = 0.1
    var shadow_blur: float = 1.0
    var shadow_enabled: bool = false
    var shadow_normal_bias: float = 2.0
    var shadow_opacity: float = 1.0
    var shadow_reverse_cull_face: bool = false
    var shadow_transmittance_bias: float = 0.05

    func get_correlated_color() -> Color
    func get_param(param: enum Param) -> float
    func set_param(param: enum Param, value: float)

# Object < Node < Node3D < VisualInstance3D < Light3D < DirectionalLight3D

  class DirectionalLight3D extends Light3D:

    enum ShadowMode {
      SHADOW_ORTHOGONAL = 0,
      SHADOW_PARALLEL_2_SPLITS = 1,
      SHADOW_PARALLEL_4_SPLITS = 2,
    }

    enum SkyMode {
      SKY_MODE_LIGHT_AND_SKY = 0,
      SKY_MODE_LIGHT_ONLY = 1,
      SKY_MODE_SKY_ONLY = 2,
    }

    var directional_shadow_blend_splits: bool = false
    var directional_shadow_fade_start: float = 0.8
    var directional_shadow_max_distance: float = 100.0
    var directional_shadow_mode: enum ShadowMode = SHADOW_PARALLEL_4_SPLITS
    var directional_shadow_pancake_size: float = 20.0
    var directional_shadow_split_1: float = 0.1
    var directional_shadow_split_2: float = 0.2
    var directional_shadow_split_3: float = 0.5
    var sky_mode: enum SkyMode = SKY_MODE_LIGHT_AND_SKY

# Object < Node < Node3D < VisualInstance3D < Light3D < OmniLight3D

  class OmniLight3D extends Light3D:

    enum ShadowMode {
      SHADOW_DUAL_PARABOLOID = 0,
      SHADOW_CUBE = 1,
    }

    var omni_attenuation: float = 1.0
    var omni_range: float = 5.0
    var omni_shadow_mode: enum ShadowMode = SHADOW_CUBE

# Object < Node < Node3D < VisualInstance3D < Light3D < SpotLight3D

  class SpotLight3D extends Light3D:

    var spot_angle: float = 45.0
    var spot_angle_attenuation: float = 1.0
    var spot_attenuation: float = 1.0
    var spot_range: float = 5.0

# Object < Node < Node3D < VisualInstance3D < LightmapGI

  class LightmapGI extends VisualInstance3D:

    enum BakeError {
      BAKE_ERROR_OK = 0,
      BAKE_ERROR_NO_SCENE_ROOT = 1,
      BAKE_ERROR_FOREIGN_DATA = 2,
      BAKE_ERROR_NO_LIGHTMAPPER = 3,
      BAKE_ERROR_NO_SAVE_PATH = 4,
      BAKE_ERROR_NO_MESHES = 5,
      BAKE_ERROR_MESHES_INVALID = 6,
      BAKE_ERROR_CANT_CREATE_IMAGE = 7,
      BAKE_ERROR_USER_ABORTED = 8,
      BAKE_ERROR_TEXTURE_SIZE_TOO_SMALL = 9,
    }

    enum BakeQuality {
      BAKE_QUALITY_LOW = 0,
      BAKE_QUALITY_MEDIUM = 1,
      BAKE_QUALITY_HIGH = 2,
      BAKE_QUALITY_ULTRA = 3,
    }

    enum EnvironmentMode {
      ENVIRONMENT_MODE_DISABLED = 0,
      ENVIRONMENT_MODE_SCENE = 1,
      ENVIRONMENT_MODE_CUSTOM_SKY = 2,
      ENVIRONMENT_MODE_CUSTOM_COLOR = 3,
    }

    enum GenerateProbes {
      GENERATE_PROBES_DISABLED = 0,
      GENERATE_PROBES_SUBDIV_4 = 1,
      GENERATE_PROBES_SUBDIV_8 = 2,
      GENERATE_PROBES_SUBDIV_16 = 3,
      GENERATE_PROBES_SUBDIV_32 = 4,
    }

    var bias: float = 0.0005
    var bounce_indirect_energy: float = 1.0
    var bounces: int = 3
    var camera_attributes: CameraAttributes
    var denoiser_strength: float = 0.1
    var directional: bool = false
    var environment_custom_color: Color
    var environment_custom_energy: float
    var environment_custom_sky: Sky
    var environment_mode: enum EnvironmentMode = ENVIRONMENT_MODE_SCENE
    var generate_probes_subdiv: enum GenerateProbes = GENERATE_PROBES_SUBDIV_8
    var interior: bool = false
    var light_data: LightmapGIData
    var max_texture_size: int = 16384
    var quality: enum BakeQuality = BAKE_QUALITY_MEDIUM
    var use_denoiser: bool = true
    var use_texture_for_bounces: bool = true

# Object < Node < Node3D < VisualInstance3D < ReflectionProbe

  class ReflectionProbe extends VisualInstance3D:

    enum AmbientMode {
      AMBIENT_DISABLED = 0,
      AMBIENT_ENVIRONMENT = 1,
      AMBIENT_COLOR = 2,
    }

    enum UpdateMode {
      UPDATE_ONCE = 0,
      UPDATE_ALWAYS = 1,
    }

    var ambient_color: Color = Color(0, 0, 0, 1)
    var ambient_color_energy: float = 1.0
    var ambient_mode: enum AmbientMode = AMBIENT_ENVIRONMENT
    var box_projection: bool = false
    var cull_mask: int = 1048575
    var enable_shadows: bool = false
    var intensity: float = 1.0
    var interior: bool = false
    var max_distance: float = 0.0
    var mesh_lod_threshold: float = 1.0
    var origin_offset: Vector3 = Vector3(0, 0, 0)
    var size: Vector3 = Vector3(20, 20, 20)
    var update_mode: enum UpdateMode = UPDATE_ONCE

# Object < Node < Node3D < VisualInstance3D < RootMotionView

  class RootMotionView extends VisualInstance3D:

    var animation_path: NodePath = NodePath("")
    var cell_size: float = 1.0
    var color: Color = Color(0.5, 0.5, 1, 1)
    var radius: float = 10.0
    var zero_y: bool = true

# Object < Node < Node3D < VisualInstance3D < VisibleOnScreenNotifier3D

  class VisibleOnScreenNotifier3D extends VisualInstance3D:

    var aabb: AABB = AABB(Vector3(-1, -1, -1), Vector3(2, 2, 2))

    signal screen_entered()
    signal screen_exited()

    func is_on_screen() -> bool

# Object < Node < Node3D < VisualInstance3D < VisibleOnScreenNotifier3D < VisibleOnScreenEnabler3D

  class VisibleOnScreenEnabler3D extends VisibleOnScreenNotifier3D:

    enum EnableMode {
      ENABLE_MODE_INHERIT = 0,
      ENABLE_MODE_ALWAYS = 1,
      ENABLE_MODE_WHEN_PAUSED = 2,
    }

    var enable_mode: enum EnableMode = ENABLE_MODE_INHERIT
    var enable_node_path: NodePath = NodePath("..")

# Object < Node < Node3D < VisualInstance3D < VoxelGI

  class VoxelGI extends VisualInstance3D:

    enum Subdiv {
      SUBDIV_64 = 0,
      SUBDIV_128 = 1,
      SUBDIV_256 = 2,
      SUBDIV_512 = 3,
      SUBDIV_MAX = 4,
    }

    var camera_attributes: CameraAttributes
    var data: VoxelGIData
    var size: Vector3 = Vector3(20, 20, 20)
    var subdiv: enum Subdiv = SUBDIV_128

    func bake(from_node: Node = null, create_visual_debug: bool = false)
    func debug_bake()

# Object < Node < Node3D < XRNode3D (abstract)

  class XRNode3D extends Node3D:

    var pose: StringName = "default"
    var tracker: StringName = ""

    signal tracking_changed(tracking: bool)

    func get_has_tracking_data() -> bool
    func get_is_active() -> bool
    func get_pose() -> XRPose
    func trigger_haptic_pulse(action_name: String, frequency: float, amplitude: float, duration_sec: float, delay_sec: float)

# Object < Node < Node3D < XRNode3D < XRAnchor3D

  class XRAnchor3D extends XRNode3D:

    func get_plane() -> Plane
    func get_size() -> Vector3

# Object < Node < Node3D < XRNode3D < XRController3D

  class XRController3D extends XRNode3D:

    signal button_pressed(name: String)
    signal button_released(name: String)
    signal input_float_changed(name: String, value: float)
    signal input_vector2_changed(name: String, value: Vector2)

    func get_float(name: StringName) -> float
    func get_input(name: StringName) -> Variant
    func get_tracker_hand() -> enum XRPositionalTracker.TrackerHand
    func get_vector2(name: StringName) -> Vector2
    func is_button_pressed(name: StringName) -> bool

# Object < Node < Node3D < XROrigin3D

  class XROrigin3D extends Node3D:

    var current: bool = false
    var world_scale: float = 1.0

# Object < Node < AnimationMixer (abstract)

  class AnimationMixer extends Node:

    enum AnimationCallbackModeMethod {
      ANIMATION_CALLBACK_MODE_METHOD_DEFERRED = 0,
      ANIMATION_CALLBACK_MODE_METHOD_IMMEDIATE = 1,
    }

    enum AnimationCallbackModeProcess {
      ANIMATION_CALLBACK_MODE_PROCESS_PHYSICS = 0,
      ANIMATION_CALLBACK_MODE_PROCESS_IDLE = 1,
      ANIMATION_CALLBACK_MODE_PROCESS_MANUAL = 2,
    }

    var active: bool = true
    var audio_max_polyphony: int = 32
    var callback_mode_method: enum AnimationCallbackModeMethod = ANIMATION_CALLBACK_MODE_METHOD_DEFERRED
    var callback_mode_process: enum AnimationCallbackModeProcess = ANIMATION_CALLBACK_MODE_PROCESS_IDLE
    var deterministic: bool = false
    var reset_on_save: bool = true
    var root_motion_track: NodePath = NodePath("")
    var root_node: NodePath = NodePath("..")

    signal animation_finished(anim_name: StringName)
    signal animation_libraries_updated()
    signal animation_list_changed()
    signal animation_started(anim_name: StringName)
    signal caches_cleared()
    signal mixer_updated()

    func add_animation_library(name: StringName, library: AnimationLibrary) -> enum Error
    func advance(delta: float)
    func clear_caches()
    func find_animation(animation: Animation) -> StringName
    func find_animation_library(animation: Animation) -> StringName
    func get_animation(name: StringName) -> Animation
    func get_animation_library(name: StringName) -> AnimationLibrary
    func get_animation_library_list() -> Array[StringName]
    func get_animation_list() -> PackedStringArray
    func get_root_motion_position() -> Vector3
    func get_root_motion_position_accumulator() -> Vector3
    func get_root_motion_rotation() -> Quaternion
    func get_root_motion_rotation_accumulator() -> Quaternion
    func get_root_motion_scale() -> Vector3
    func get_root_motion_scale_accumulator() -> Vector3
    func has_animation(name: StringName) -> bool
    func has_animation_library(name: StringName) -> bool
    func remove_animation_library(name: StringName)
    func rename_animation_library(name: StringName, newname: StringName)

    func _post_process_key_value(animation: Animation, track: int, value: Variant, object: Object, object_idx: int) -> Variant

# Object < Node < AnimationMixer < AnimationPlayer

  class AnimationPlayer extends AnimationMixer:

    enum AnimationMethodCallMode {
      ANIMATION_METHOD_CALL_DEFERRED = 0,
      ANIMATION_METHOD_CALL_IMMEDIATE = 1,
    }

    enum AnimationProcessCallback {
      ANIMATION_PROCESS_PHYSICS = 0,
      ANIMATION_PROCESS_IDLE = 1,
      ANIMATION_PROCESS_MANUAL = 2,
    }

    var assigned_animation: String
    var autoplay: String = ""
    var current_animation: String = ""
    var current_animation_length: float
    var current_animation_position: float
    var movie_quit_on_finish: bool = false
    var playback_default_blend_time: float = 0.0
    var speed_scale: float = 1.0

    signal animation_changed(old_name: StringName, new_name: StringName)
    signal current_animation_changed(name: String)

    func animation_get_next(animation_from: StringName) -> StringName
    func animation_set_next(animation_from: StringName, animation_to: StringName)
    func clear_queue()
    func get_blend_time(animation_from: StringName, animation_to: StringName) -> float
    func get_method_call_mode() -> enum AnimationMethodCallMode
    func get_playing_speed() -> float
    func get_process_callback() -> enum AnimationProcessCallback
    func get_queue() -> PackedStringArray
    func get_root() -> NodePath
    func is_playing() -> bool
    func pause()
    func play(name: StringName = "", custom_blend: float = -1, custom_speed: float = 1.0, from_end: bool = false)
    func play_backwards(name: StringName = "", custom_blend: float = -1)
    func queue(name: StringName)
    func seek(seconds: float, update: bool = false, update_only: bool = false)
    func set_blend_time(animation_from: StringName, animation_to: StringName, sec: float)
    func set_method_call_mode(mode: enum AnimationMethodCallMode)
    func set_process_callback(mode: enum AnimationProcessCallback)
    func set_root(path: NodePath)
    func stop(keep_state: bool = false)

# Object < Node < AnimationMixer < AnimationTree

  class AnimationTree extends AnimationMixer:

    enum AnimationProcessCallback {
      ANIMATION_PROCESS_PHYSICS = 0,
      ANIMATION_PROCESS_IDLE = 1,
      ANIMATION_PROCESS_MANUAL = 2,
    }

    var advance_expression_base_node: NodePath = NodePath(".")
    var anim_player: NodePath = NodePath("")
    var tree_root: AnimationRootNode

    signal animation_player_changed()

    func get_process_callback() -> enum AnimationProcessCallback
    func set_process_callback(mode: enum AnimationProcessCallback)

# Object < Node < AudioStreamPlayer

  class AudioStreamPlayer extends Node:

    enum MixTarget {
      MIX_TARGET_STEREO = 0,
      MIX_TARGET_SURROUND = 1,
      MIX_TARGET_CENTER = 2,
    }

    var autoplay: bool = false
    var bus: StringName = "Master"
    var max_polyphony: int = 1
    var mix_target: enum MixTarget = MIX_TARGET_STEREO
    var pitch_scale: float = 1.0
    var playing: bool = false
    var stream: AudioStream
    var stream_paused: bool = false
    var volume_db: float = 0.0

    signal finished()

    func get_playback_position() -> float
    func get_stream_playback() -> AudioStreamPlayback
    func has_stream_playback() -> bool
    func play(from_position: float = 0.0)
    func seek(to_position: float)
    func stop()

# Object < Node < CanvasLayer

  class CanvasLayer extends Node:

    var custom_viewport: Node
    var follow_viewport_enabled: bool = false
    var follow_viewport_scale: float = 1.0
    var layer: int = 1
    var offset: Vector2 = Vector2(0, 0)
    var rotation: float = 0.0
    var scale: Vector2 = Vector2(1, 1)
    var transform: Transform2D = Transform2D(Vector2(1, 0), Vector2(0, 1), Vector2(0, 0))
    var visible: bool = true

    signal visibility_changed()

    func get_canvas() -> RID
    func get_final_transform() -> Transform2D
    func hide()
    func show()

# Object < Node < CanvasLayer < ParallaxBackground

  class ParallaxBackground extends CanvasLayer:

    var scroll_base_offset: Vector2 = Vector2(0, 0)
    var scroll_base_scale: Vector2 = Vector2(1, 1)
    var scroll_ignore_camera_zoom: bool = false
    var scroll_limit_begin: Vector2 = Vector2(0, 0)
    var scroll_limit_end: Vector2 = Vector2(0, 0)
    var scroll_offset: Vector2 = Vector2(0, 0)

# Object < Node < HTTPRequest

  class HTTPRequest extends Node:

    enum Result {
      RESULT_SUCCESS = 0,
      RESULT_CHUNKED_BODY_SIZE_MISMATCH = 1,
      RESULT_CANT_CONNECT = 2,
      RESULT_CANT_RESOLVE = 3,
      RESULT_CONNECTION_ERROR = 4,
      RESULT_TLS_HANDSHAKE_ERROR = 5,
      RESULT_NO_RESPONSE = 6,
      RESULT_BODY_SIZE_LIMIT_EXCEEDED = 7,
      RESULT_BODY_DECOMPRESS_FAILED = 8,
      RESULT_REQUEST_FAILED = 9,
      RESULT_DOWNLOAD_FILE_CANT_OPEN = 10,
      RESULT_DOWNLOAD_FILE_WRITE_ERROR = 11,
      RESULT_REDIRECT_LIMIT_REACHED = 12,
      RESULT_TIMEOUT = 13,
    }

    var accept_gzip: bool = true
    var body_size_limit: int = -1
    var download_chunk_size: int = 65536
    var download_file: String = ""
    var max_redirects: int = 8
    var timeout: float = 0.0
    var use_threads: bool = false

    signal request_completed(result: enum Result, response_code: int, headers: PackedStringArray, body: PackedByteArray)

    func cancel_request()
    func get_body_size() -> int
    func get_downloaded_bytes() -> int
    func get_http_client_status() -> enum HTTPClient.Status
    func request(url: String, custom_headers: PackedStringArray = PackedStringArray(), method: enum HTTPClient.Method = HTTPClient.METHOD_GET, request_data: String = "") -> enum Error
    func request_raw(url: String, custom_headers: PackedStringArray = PackedStringArray(), method: enum HTTPClient.Method = HTTPClient.METHOD_GET, request_data_raw: PackedByteArray = PackedByteArray()) -> enum Error
    func set_http_proxy(host: String, port: int)
    func set_https_proxy(host: String, port: int)
    func set_tls_options(client_options: TLSOptions)

# Object < Node < InstancePlaceholder (abstract)

  class InstancePlaceholder extends Node:

    func create_instance(replace: bool = false, custom_scene: PackedScene = null) -> Node
    func get_instance_path() -> String
    func get_stored_values(with_order: bool = false) -> Dictionary

# Object < Node < MissingNode

  class MissingNode extends Node:

    var original_class: String
    var recording_properties: bool

# Object < Node < NavigationAgent2D

  class NavigationAgent2D extends Node:

    var avoidance_enabled: bool = false
    var avoidance_layers: int = 1
    var avoidance_mask: int = 1
    var avoidance_priority: float = 1.0
    var debug_enabled: bool = false
    var debug_path_custom_color: Color = Color(1, 1, 1, 1)
    var debug_path_custom_line_width: float = -1.0
    var debug_path_custom_point_size: float = 4.0
    var debug_use_custom: bool = false
    var max_neighbors: int = 10
    var max_speed: float = 100.0
    var navigation_layers: int = 1
    var neighbor_distance: float = 500.0
    var path_desired_distance: float = 20.0
    var path_max_distance: float = 100.0
    var path_metadata_flags: enum NavigationPathQueryParameters2D.PathMetadataFlags = NavigationPathQueryParameters2D.PATH_METADATA_INCLUDE_ALL
    var path_postprocessing: enum NavigationPathQueryParameters2D.PathPostProcessing = NavigationPathQueryParameters2D.PATH_POSTPROCESSING_CORRIDORFUNNEL
    var pathfinding_algorithm: enum NavigationPathQueryParameters2D.PathfindingAlgorithm = NavigationPathQueryParameters2D.PATHFINDING_ALGORITHM_ASTAR
    var radius: float = 10.0
    var target_desired_distance: float = 10.0
    var target_position: Vector2 = Vector2(0, 0)
    var time_horizon_agents: float = 1.0
    var time_horizon_obstacles: float = 0.0
    var velocity: Vector2 = Vector2(0, 0)

    signal link_reached(details: Dictionary)
    signal navigation_finished()
    signal path_changed()
    signal target_reached()
    signal velocity_computed(safe_velocity: Vector2)
    signal waypoint_reached(details: Dictionary)

    func distance_to_target() -> float
    func get_avoidance_layer_value(layer_number: int) -> bool
    func get_avoidance_mask_value(mask_number: int) -> bool
    func get_current_navigation_path() -> PackedVector2Array
    func get_current_navigation_path_index() -> int
    func get_current_navigation_result() -> NavigationPathQueryResult2D
    func get_final_position() -> Vector2
    func get_navigation_layer_value(layer_number: int) -> bool
    func get_navigation_map() -> RID
    func get_next_path_position() -> Vector2
    func get_rid() -> RID
    func is_navigation_finished() -> bool
    func is_target_reachable() -> bool
    func is_target_reached() -> bool
    func set_avoidance_layer_value(layer_number: int, value: bool)
    func set_avoidance_mask_value(mask_number: int, value: bool)
    func set_navigation_layer_value(layer_number: int, value: bool)
    func set_navigation_map(navigation_map: RID)
    func set_velocity_forced(velocity: Vector2)

# Object < Node < NavigationAgent3D

  class NavigationAgent3D extends Node:

    var avoidance_enabled: bool = false
    var avoidance_layers: int = 1
    var avoidance_mask: int = 1
    var avoidance_priority: float = 1.0
    var debug_enabled: bool = false
    var debug_path_custom_color: Color = Color(1, 1, 1, 1)
    var debug_path_custom_point_size: float = 4.0
    var debug_use_custom: bool = false
    var height: float = 1.0
    var keep_y_velocity: bool = true
    var max_neighbors: int = 10
    var max_speed: float = 10.0
    var navigation_layers: int = 1
    var neighbor_distance: float = 50.0
    var path_desired_distance: float = 1.0
    var path_height_offset: float = 0.0
    var path_max_distance: float = 5.0
    var path_metadata_flags: enum NavigationPathQueryParameters3D.PathMetadataFlags = NavigationPathQueryParameters3D.PATH_METADATA_INCLUDE_ALL
    var path_postprocessing: enum NavigationPathQueryParameters3D.PathPostProcessing = NavigationPathQueryParameters3D.PATH_POSTPROCESSING_CORRIDORFUNNEL
    var pathfinding_algorithm: enum NavigationPathQueryParameters3D.PathfindingAlgorithm = NavigationPathQueryParameters3D.PATHFINDING_ALGORITHM_ASTAR
    var radius: float = 0.5
    var target_desired_distance: float = 1.0
    var target_position: Vector3 = Vector3(0, 0, 0)
    var time_horizon_agents: float = 1.0
    var time_horizon_obstacles: float = 0.0
    var use_3d_avoidance: bool = false
    var velocity: Vector3 = Vector3(0, 0, 0)

    signal link_reached(details: Dictionary)
    signal navigation_finished()
    signal path_changed()
    signal target_reached()
    signal velocity_computed(safe_velocity: Vector3)
    signal waypoint_reached(details: Dictionary)

    func distance_to_target() -> float
    func get_avoidance_layer_value(layer_number: int) -> bool
    func get_avoidance_mask_value(mask_number: int) -> bool
    func get_current_navigation_path() -> PackedVector3Array
    func get_current_navigation_path_index() -> int
    func get_current_navigation_result() -> NavigationPathQueryResult3D
    func get_final_position() -> Vector3
    func get_navigation_layer_value(layer_number: int) -> bool
    func get_navigation_map() -> RID
    func get_next_path_position() -> Vector3
    func get_rid() -> RID
    func is_navigation_finished() -> bool
    func is_target_reachable() -> bool
    func is_target_reached() -> bool
    func set_avoidance_layer_value(layer_number: int, value: bool)
    func set_avoidance_mask_value(mask_number: int, value: bool)
    func set_navigation_layer_value(layer_number: int, value: bool)
    func set_navigation_map(navigation_map: RID)
    func set_velocity_forced(velocity: Vector3)

# Object < Node < ResourcePreloader

  class ResourcePreloader extends Node:

    func add_resource(name: StringName, resource: Resource)
    func get_resource(name: StringName) -> Resource
    func get_resource_list() -> PackedStringArray
    func has_resource(name: StringName) -> bool
    func remove_resource(name: StringName)
    func rename_resource(name: StringName, newname: StringName)

# Object < Node < ShaderGlobalsOverride

  class ShaderGlobalsOverride extends Node:

    pass 

# Object < Node < SkeletonIK3D

  class SkeletonIK3D extends Node:

    var interpolation: float = 1.0
    var magnet: Vector3 = Vector3(0, 0, 0)
    var max_iterations: int = 10
    var min_distance: float = 0.01
    var override_tip_basis: bool = true
    var root_bone: StringName = ""
    var target: Transform3D = Transform3D(Vector3(1, 0, 0), Vector3(0, 1, 0), Vector3(0, 0, 1), Vector3(0, 0, 0))
    var target_node: NodePath = NodePath("")
    var tip_bone: StringName = ""
    var use_magnet: bool = false

    func get_parent_skeleton() -> Skeleton3D
    func is_running() -> bool
    func start(one_time: bool = false)
    func stop()

# Object < Node < Timer

  class Timer extends Node:

    enum TimerProcessCallback {
      TIMER_PROCESS_PHYSICS = 0,
      TIMER_PROCESS_IDLE = 1,
    }

    var autostart: bool = false
    var one_shot: bool = false
    var paused: bool
    var process_callback: enum TimerProcessCallback = TIMER_PROCESS_IDLE
    var time_left: float
    var wait_time: float = 1.0

    signal timeout()

    func is_stopped() -> bool
    func start(time_sec: float = -1)
    func stop()

# Object < Node < Viewport (abstract)

  class Viewport extends Node:

    enum DebugDraw {
      DEBUG_DRAW_DISABLED = 0,
      DEBUG_DRAW_UNSHADED = 1,
      DEBUG_DRAW_LIGHTING = 2,
      DEBUG_DRAW_OVERDRAW = 3,
      DEBUG_DRAW_WIREFRAME = 4,
      DEBUG_DRAW_NORMAL_BUFFER = 5,
      DEBUG_DRAW_VOXEL_GI_ALBEDO = 6,
      DEBUG_DRAW_VOXEL_GI_LIGHTING = 7,
      DEBUG_DRAW_VOXEL_GI_EMISSION = 8,
      DEBUG_DRAW_SHADOW_ATLAS = 9,
      DEBUG_DRAW_DIRECTIONAL_SHADOW_ATLAS = 10,
      DEBUG_DRAW_SCENE_LUMINANCE = 11,
      DEBUG_DRAW_SSAO = 12,
      DEBUG_DRAW_SSIL = 13,
      DEBUG_DRAW_PSSM_SPLITS = 14,
      DEBUG_DRAW_DECAL_ATLAS = 15,
      DEBUG_DRAW_SDFGI = 16,
      DEBUG_DRAW_SDFGI_PROBES = 17,
      DEBUG_DRAW_GI_BUFFER = 18,
      DEBUG_DRAW_DISABLE_LOD = 19,
      DEBUG_DRAW_CLUSTER_OMNI_LIGHTS = 20,
      DEBUG_DRAW_CLUSTER_SPOT_LIGHTS = 21,
      DEBUG_DRAW_CLUSTER_DECALS = 22,
      DEBUG_DRAW_CLUSTER_REFLECTION_PROBES = 23,
      DEBUG_DRAW_OCCLUDERS = 24,
      DEBUG_DRAW_MOTION_VECTORS = 25,
      DEBUG_DRAW_INTERNAL_BUFFER = 26,
    }

    enum DefaultCanvasItemTextureFilter {
      DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_NEAREST = 0,
      DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_LINEAR = 1,
      DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS = 2,
      DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS = 3,
      DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_MAX = 4,
    }

    enum DefaultCanvasItemTextureRepeat {
      DEFAULT_CANVAS_ITEM_TEXTURE_REPEAT_DISABLED = 0,
      DEFAULT_CANVAS_ITEM_TEXTURE_REPEAT_ENABLED = 1,
      DEFAULT_CANVAS_ITEM_TEXTURE_REPEAT_MIRROR = 2,
      DEFAULT_CANVAS_ITEM_TEXTURE_REPEAT_MAX = 3,
    }

    enum MSAA {
      MSAA_DISABLED = 0,
      MSAA_2X = 1,
      MSAA_4X = 2,
      MSAA_8X = 3,
      MSAA_MAX = 4,
    }

    enum PositionalShadowAtlasQuadrantSubdiv {
      SHADOW_ATLAS_QUADRANT_SUBDIV_DISABLED = 0,
      SHADOW_ATLAS_QUADRANT_SUBDIV_1 = 1,
      SHADOW_ATLAS_QUADRANT_SUBDIV_4 = 2,
      SHADOW_ATLAS_QUADRANT_SUBDIV_16 = 3,
      SHADOW_ATLAS_QUADRANT_SUBDIV_64 = 4,
      SHADOW_ATLAS_QUADRANT_SUBDIV_256 = 5,
      SHADOW_ATLAS_QUADRANT_SUBDIV_1024 = 6,
      SHADOW_ATLAS_QUADRANT_SUBDIV_MAX = 7,
    }

    enum RenderInfo {
      RENDER_INFO_OBJECTS_IN_FRAME = 0,
      RENDER_INFO_PRIMITIVES_IN_FRAME = 1,
      RENDER_INFO_DRAW_CALLS_IN_FRAME = 2,
      RENDER_INFO_MAX = 3,
    }

    enum RenderInfoType {
      RENDER_INFO_TYPE_VISIBLE = 0,
      RENDER_INFO_TYPE_SHADOW = 1,
      RENDER_INFO_TYPE_MAX = 2,
    }

    enum Scaling3DMode {
      SCALING_3D_MODE_BILINEAR = 0,
      SCALING_3D_MODE_FSR = 1,
      SCALING_3D_MODE_FSR2 = 2,
      SCALING_3D_MODE_MAX = 3,
    }

    enum ScreenSpaceAA {
      SCREEN_SPACE_AA_DISABLED = 0,
      SCREEN_SPACE_AA_FXAA = 1,
      SCREEN_SPACE_AA_MAX = 2,
    }

    enum SDFOversize {
      SDF_OVERSIZE_100_PERCENT = 0,
      SDF_OVERSIZE_120_PERCENT = 1,
      SDF_OVERSIZE_150_PERCENT = 2,
      SDF_OVERSIZE_200_PERCENT = 3,
      SDF_OVERSIZE_MAX = 4,
    }

    enum SDFScale {
      SDF_SCALE_100_PERCENT = 0,
      SDF_SCALE_50_PERCENT = 1,
      SDF_SCALE_25_PERCENT = 2,
      SDF_SCALE_MAX = 3,
    }

    enum VRSMode {
      VRS_DISABLED = 0,
      VRS_TEXTURE = 1,
      VRS_XR = 2,
      VRS_MAX = 3,
    }

    var audio_listener_enable_2d: bool = false
    var audio_listener_enable_3d: bool = false
    var canvas_cull_mask: int = 4294967295
    var canvas_item_default_texture_filter: enum DefaultCanvasItemTextureFilter = DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_LINEAR
    var canvas_item_default_texture_repeat: enum DefaultCanvasItemTextureRepeat = DEFAULT_CANVAS_ITEM_TEXTURE_REPEAT_DISABLED
    var canvas_transform: Transform2D
    var debug_draw: enum DebugDraw = DEBUG_DRAW_DISABLED
    var disable_3d: bool = false
    var fsr_sharpness: float = 0.2
    var global_canvas_transform: Transform2D
    var gui_disable_input: bool = false
    var gui_embed_subwindows: bool = false
    var gui_snap_controls_to_pixels: bool = true
    var handle_input_locally: bool = true
    var mesh_lod_threshold: float = 1.0
    var msaa_2d: enum MSAA = MSAA_DISABLED
    var msaa_3d: enum MSAA = MSAA_DISABLED
    var own_world_3d: bool = false
    var physics_object_picking: bool = false
    var physics_object_picking_sort: bool = false
    var positional_shadow_atlas_16_bits: bool = true
    var positional_shadow_atlas_quad_0: enum PositionalShadowAtlasQuadrantSubdiv = SHADOW_ATLAS_QUADRANT_SUBDIV_4
    var positional_shadow_atlas_quad_1: enum PositionalShadowAtlasQuadrantSubdiv = SHADOW_ATLAS_QUADRANT_SUBDIV_4
    var positional_shadow_atlas_quad_2: enum PositionalShadowAtlasQuadrantSubdiv = SHADOW_ATLAS_QUADRANT_SUBDIV_16
    var positional_shadow_atlas_quad_3: enum PositionalShadowAtlasQuadrantSubdiv = SHADOW_ATLAS_QUADRANT_SUBDIV_64
    var positional_shadow_atlas_size: int = 2048
    var scaling_3d_mode: enum Scaling3DMode = SCALING_3D_MODE_BILINEAR
    var scaling_3d_scale: float = 1.0
    var screen_space_aa: enum ScreenSpaceAA = SCREEN_SPACE_AA_DISABLED
    var sdf_oversize: enum SDFOversize = SDF_OVERSIZE_120_PERCENT
    var sdf_scale: enum SDFScale = SDF_SCALE_50_PERCENT
    var snap_2d_transforms_to_pixel: bool = false
    var snap_2d_vertices_to_pixel: bool = false
    var texture_mipmap_bias: float = 0.0
    var transparent_bg: bool = false
    var use_debanding: bool = false
    var use_hdr_2d: bool = false
    var use_occlusion_culling: bool = false
    var use_taa: bool = false
    var use_xr: bool = false
    var vrs_mode: enum VRSMode = VRS_DISABLED
    var vrs_texture: Texture2D
    var world_2d: World2D
    var world_3d: World3D

    signal gui_focus_changed(node: Control)
    signal size_changed()

    func find_world_2d() -> World2D
    func find_world_3d() -> World3D
    func get_camera_2d() -> Camera2D
    func get_camera_3d() -> Camera3D
    func get_canvas_cull_mask_bit(layer: int) -> bool
    func get_embedded_subwindows() -> Array[Window]
    func get_final_transform() -> Transform2D
    func get_mouse_position() -> Vector2
    func get_positional_shadow_atlas_quadrant_subdiv(quadrant: int) -> enum PositionalShadowAtlasQuadrantSubdiv
    func get_render_info(type: enum RenderInfoType, info: enum RenderInfo) -> int
    func get_screen_transform() -> Transform2D
    func get_texture() -> ViewportTexture
    func get_viewport_rid() -> RID
    func get_visible_rect() -> Rect2
    func gui_get_drag_data() -> Variant
    func gui_get_focus_owner() -> Control
    func gui_is_drag_successful() -> bool
    func gui_is_dragging() -> bool
    func gui_release_focus()
    func is_input_handled() -> bool
    func push_input(event: InputEvent, in_local_coords: bool = false)
    func push_text_input(text: String)
    func push_unhandled_input(event: InputEvent, in_local_coords: bool = false)
    func set_canvas_cull_mask_bit(layer: int, enable: bool)
    func set_input_as_handled()
    func set_positional_shadow_atlas_quadrant_subdiv(quadrant: int, subdiv: enum PositionalShadowAtlasQuadrantSubdiv)
    func update_mouse_cursor_state()
    func warp_mouse(position: Vector2)

# Object < Node < Viewport < SubViewport

  class SubViewport extends Viewport:

    enum ClearMode {
      CLEAR_MODE_ALWAYS = 0,
      CLEAR_MODE_NEVER = 1,
      CLEAR_MODE_ONCE = 2,
    }

    enum UpdateMode {
      UPDATE_DISABLED = 0,
      UPDATE_ONCE = 1,
      UPDATE_WHEN_VISIBLE = 2,
      UPDATE_WHEN_PARENT_VISIBLE = 3,
      UPDATE_ALWAYS = 4,
    }

    var render_target_clear_mode: enum ClearMode = CLEAR_MODE_ALWAYS
    var render_target_update_mode: enum UpdateMode = UPDATE_WHEN_VISIBLE
    var size: Vector2i = Vector2i(512, 512)
    var size_2d_override: Vector2i = Vector2i(0, 0)
    var size_2d_override_stretch: bool = false

# Object < Node < Viewport < Window

  class Window extends Viewport:

    enum ContentScaleAspect {
      CONTENT_SCALE_ASPECT_IGNORE = 0,
      CONTENT_SCALE_ASPECT_KEEP = 1,
      CONTENT_SCALE_ASPECT_KEEP_WIDTH = 2,
      CONTENT_SCALE_ASPECT_KEEP_HEIGHT = 3,
      CONTENT_SCALE_ASPECT_EXPAND = 4,
    }

    enum ContentScaleMode {
      CONTENT_SCALE_MODE_DISABLED = 0,
      CONTENT_SCALE_MODE_CANVAS_ITEMS = 1,
      CONTENT_SCALE_MODE_VIEWPORT = 2,
    }

    enum ContentScaleStretch {
      CONTENT_SCALE_STRETCH_FRACTIONAL = 0,
      CONTENT_SCALE_STRETCH_INTEGER = 1,
    }

    enum Flags {
      FLAG_RESIZE_DISABLED = 0,
      FLAG_BORDERLESS = 1,
      FLAG_ALWAYS_ON_TOP = 2,
      FLAG_TRANSPARENT = 3,
      FLAG_NO_FOCUS = 4,
      FLAG_POPUP = 5,
      FLAG_EXTEND_TO_TITLE = 6,
      FLAG_MOUSE_PASSTHROUGH = 7,
      FLAG_MAX = 8,
    }

    enum LayoutDirection {
      LAYOUT_DIRECTION_INHERITED = 0,
      LAYOUT_DIRECTION_LOCALE = 1,
      LAYOUT_DIRECTION_LTR = 2,
      LAYOUT_DIRECTION_RTL = 3,
    }

    enum Mode {
      MODE_WINDOWED = 0,
      MODE_MINIMIZED = 1,
      MODE_MAXIMIZED = 2,
      MODE_FULLSCREEN = 3,
      MODE_EXCLUSIVE_FULLSCREEN = 4,
    }

    enum Notification {
      NOTIFICATION_VISIBILITY_CHANGED = 30,
      NOTIFICATION_THEME_CHANGED = 32,
    }

    enum WindowInitialPosition {
      WINDOW_INITIAL_POSITION_ABSOLUTE = 0,
      WINDOW_INITIAL_POSITION_CENTER_PRIMARY_SCREEN = 1,
      WINDOW_INITIAL_POSITION_CENTER_MAIN_WINDOW_SCREEN = 2,
      WINDOW_INITIAL_POSITION_CENTER_OTHER_SCREEN = 3,
      WINDOW_INITIAL_POSITION_CENTER_SCREEN_WITH_MOUSE_FOCUS = 4,
      WINDOW_INITIAL_POSITION_CENTER_SCREEN_WITH_KEYBOARD_FOCUS = 5,
    }

    var always_on_top: bool = false
    var auto_translate: bool = true
    var borderless: bool = false
    var content_scale_aspect: enum ContentScaleAspect = CONTENT_SCALE_ASPECT_IGNORE
    var content_scale_factor: float = 1.0
    var content_scale_mode: enum ContentScaleMode = CONTENT_SCALE_MODE_DISABLED
    var content_scale_size: Vector2i = Vector2i(0, 0)
    var content_scale_stretch: enum ContentScaleStretch = CONTENT_SCALE_STRETCH_FRACTIONAL
    var current_screen: int
    var exclusive: bool = false
    var extend_to_title: bool = false
    var initial_position: enum WindowInitialPosition = WINDOW_INITIAL_POSITION_ABSOLUTE
    var keep_title_visible: bool = false
    var max_size: Vector2i = Vector2i(0, 0)
    var min_size: Vector2i = Vector2i(0, 0)
    var mode: enum Mode = MODE_WINDOWED
    var mouse_passthrough: bool = false
    var mouse_passthrough_polygon: PackedVector2Array = PackedVector2Array()
    var popup_window: bool = false
    var position: Vector2i = Vector2i(0, 0)
    var size: Vector2i = Vector2i(100, 100)
    var theme: Theme
    var theme_type_variation: StringName = ""
    var title: String = ""
    var transient: bool = false
    var transparent: bool = false
    var unfocusable: bool = false
    var unresizable: bool = false
    var visible: bool = true
    var wrap_controls: bool = false

    signal about_to_popup()
    signal close_requested()
    signal dpi_changed()
    signal files_dropped(files: PackedStringArray)
    signal focus_entered()
    signal focus_exited()
    signal go_back_requested()
    signal mouse_entered()
    signal mouse_exited()
    signal theme_changed()
    signal titlebar_changed()
    signal visibility_changed()
    signal window_input(event: InputEvent)

    func add_theme_color_override(name: StringName, color: Color)
    func add_theme_constant_override(name: StringName, constant: int)
    func add_theme_font_override(name: StringName, font: Font)
    func add_theme_font_size_override(name: StringName, font_size: int)
    func add_theme_icon_override(name: StringName, texture: Texture2D)
    func add_theme_stylebox_override(name: StringName, stylebox: StyleBox)
    func begin_bulk_theme_override()
    func can_draw() -> bool
    func child_controls_changed()
    func end_bulk_theme_override()
    func get_contents_minimum_size() -> Vector2
    func get_flag(flag: enum Flags) -> bool
    func get_layout_direction() -> enum LayoutDirection
    func get_position_with_decorations() -> Vector2i
    func get_size_with_decorations() -> Vector2i
    func get_theme_color(name: StringName, theme_type: StringName = "") -> Color
    func get_theme_constant(name: StringName, theme_type: StringName = "") -> int
    func get_theme_default_base_scale() -> float
    func get_theme_default_font() -> Font
    func get_theme_default_font_size() -> int
    func get_theme_font(name: StringName, theme_type: StringName = "") -> Font
    func get_theme_font_size(name: StringName, theme_type: StringName = "") -> int
    func get_theme_icon(name: StringName, theme_type: StringName = "") -> Texture2D
    func get_theme_stylebox(name: StringName, theme_type: StringName = "") -> StyleBox
    func get_window_id() -> int
    func grab_focus()
    func has_focus() -> bool
    func has_theme_color(name: StringName, theme_type: StringName = "") -> bool
    func has_theme_color_override(name: StringName) -> bool
    func has_theme_constant(name: StringName, theme_type: StringName = "") -> bool
    func has_theme_constant_override(name: StringName) -> bool
    func has_theme_font(name: StringName, theme_type: StringName = "") -> bool
    func has_theme_font_override(name: StringName) -> bool
    func has_theme_font_size(name: StringName, theme_type: StringName = "") -> bool
    func has_theme_font_size_override(name: StringName) -> bool
    func has_theme_icon(name: StringName, theme_type: StringName = "") -> bool
    func has_theme_icon_override(name: StringName) -> bool
    func has_theme_stylebox(name: StringName, theme_type: StringName = "") -> bool
    func has_theme_stylebox_override(name: StringName) -> bool
    func hide()
    func is_embedded() -> bool
    func is_layout_rtl() -> bool
    func is_maximize_allowed() -> bool
    func is_using_font_oversampling() -> bool
    func move_to_center()
    func move_to_foreground()
    func popup(rect: Rect2i = Rect2i(0, 0, 0, 0))
    func popup_centered(minsize: Vector2i = Vector2i(0, 0))
    func popup_centered_clamped(minsize: Vector2i = Vector2i(0, 0), fallback_ratio: float = 0.75)
    func popup_centered_ratio(ratio: float = 0.8)
    func popup_exclusive(from_node: Node, rect: Rect2i = Rect2i(0, 0, 0, 0))
    func popup_exclusive_centered(from_node: Node, minsize: Vector2i = Vector2i(0, 0))
    func popup_exclusive_centered_clamped(from_node: Node, minsize: Vector2i = Vector2i(0, 0), fallback_ratio: float = 0.75)
    func popup_exclusive_centered_ratio(from_node: Node, ratio: float = 0.8)
    func popup_exclusive_on_parent(from_node: Node, parent_rect: Rect2i)
    func popup_on_parent(parent_rect: Rect2i)
    func remove_theme_color_override(name: StringName)
    func remove_theme_constant_override(name: StringName)
    func remove_theme_font_override(name: StringName)
    func remove_theme_font_size_override(name: StringName)
    func remove_theme_icon_override(name: StringName)
    func remove_theme_stylebox_override(name: StringName)
    func request_attention()
    func reset_size()
    func set_flag(flag: enum Flags, enabled: bool)
    func set_ime_active(active: bool)
    func set_ime_position(position: Vector2i)
    func set_layout_direction(direction: enum LayoutDirection)
    func set_unparent_when_invisible(unparent: bool)
    func set_use_font_oversampling(enable: bool)
    func show()

    func _get_contents_minimum_size() -> Vector2

# Object < Node < Viewport < Window < AcceptDialog

  class AcceptDialog extends Window:

    var dialog_autowrap: bool = false
    var dialog_close_on_escape: bool = true
    var dialog_hide_on_ok: bool = true
    var dialog_text: String = ""
    var ok_button_text: String = "OK"

    signal canceled()
    signal confirmed()
    signal custom_action(action: StringName)

    func add_button(text: String, right: bool = false, action: String = "") -> Button
    func add_cancel_button(name: String) -> Button
    func get_label() -> Label
    func get_ok_button() -> Button
    func register_text_enter(line_edit: Control)
    func remove_button(button: Control)

# Object < Node < Viewport < Window < AcceptDialog < ConfirmationDialog

  class ConfirmationDialog extends AcceptDialog:

    var cancel_button_text: String = "Cancel"

    func get_cancel_button() -> Button

# Object < Node < Viewport < Window < AcceptDialog < ConfirmationDialog < FileDialog

  class FileDialog extends ConfirmationDialog:

    enum Access {
      ACCESS_RESOURCES = 0,
      ACCESS_USERDATA = 1,
      ACCESS_FILESYSTEM = 2,
    }

    enum FileMode {
      FILE_MODE_OPEN_FILE = 0,
      FILE_MODE_OPEN_FILES = 1,
      FILE_MODE_OPEN_DIR = 2,
      FILE_MODE_OPEN_ANY = 3,
      FILE_MODE_SAVE_FILE = 4,
    }

    var access: enum Access = ACCESS_RESOURCES
    var current_dir: String
    var current_file: String
    var current_path: String
    var file_mode: enum FileMode = FILE_MODE_SAVE_FILE
    var filters: PackedStringArray = PackedStringArray()
    var mode_overrides_title: bool = true
    var root_subfolder: String = ""
    var show_hidden_files: bool = false
    var use_native_dialog: bool = false

    signal dir_selected(dir: String)
    signal file_selected(path: String)
    signal files_selected(paths: PackedStringArray)

    func add_filter(filter: String, description: String = "")
    func clear_filters()
    func deselect_all()
    func get_line_edit() -> LineEdit
    func get_vbox() -> VBoxContainer
    func invalidate()

# Object < Node < Viewport < Window < Popup

  class Popup extends Window:

    signal popup_hide()

# Object < Node < Viewport < Window < Popup < PopupMenu

  class PopupMenu extends Popup:

    var allow_search: bool = true
    var hide_on_checkable_item_selection: bool = true
    var hide_on_item_selection: bool = true
    var hide_on_state_item_selection: bool = false
    var item_count: int = 0
    var submenu_popup_delay: float = 0.3

    signal id_focused(id: int)
    signal id_pressed(id: int)
    signal index_pressed(index: int)
    signal menu_changed()

    func activate_item_by_event(event: InputEvent, for_global_only: bool = false) -> bool
    func add_check_item(label: String, id: int = -1, accel: enum Key = KEY_NONE)
    func add_check_shortcut(shortcut: Shortcut, id: int = -1, global: bool = false)
    func add_icon_check_item(texture: Texture2D, label: String, id: int = -1, accel: enum Key = KEY_NONE)
    func add_icon_check_shortcut(texture: Texture2D, shortcut: Shortcut, id: int = -1, global: bool = false)
    func add_icon_item(texture: Texture2D, label: String, id: int = -1, accel: enum Key = KEY_NONE)
    func add_icon_radio_check_item(texture: Texture2D, label: String, id: int = -1, accel: enum Key = KEY_NONE)
    func add_icon_radio_check_shortcut(texture: Texture2D, shortcut: Shortcut, id: int = -1, global: bool = false)
    func add_icon_shortcut(texture: Texture2D, shortcut: Shortcut, id: int = -1, global: bool = false, allow_echo: bool = false)
    func add_item(label: String, id: int = -1, accel: enum Key = KEY_NONE)
    func add_multistate_item(label: String, max_states: int, default_state: int = 0, id: int = -1, accel: enum Key = KEY_NONE)
    func add_radio_check_item(label: String, id: int = -1, accel: enum Key = KEY_NONE)
    func add_radio_check_shortcut(shortcut: Shortcut, id: int = -1, global: bool = false)
    func add_separator(label: String = "", id: int = -1)
    func add_shortcut(shortcut: Shortcut, id: int = -1, global: bool = false, allow_echo: bool = false)
    func add_submenu_item(label: String, submenu: String, id: int = -1)
    func clear(free_submenus: bool = false)
    func get_focused_item() -> int
    func get_item_accelerator(index: int) -> enum Key
    func get_item_icon(index: int) -> Texture2D
    func get_item_icon_max_width(index: int) -> int
    func get_item_icon_modulate(index: int) -> Color
    func get_item_id(index: int) -> int
    func get_item_indent(index: int) -> int
    func get_item_index(id: int) -> int
    func get_item_language(index: int) -> String
    func get_item_metadata(index: int) -> Variant
    func get_item_shortcut(index: int) -> Shortcut
    func get_item_submenu(index: int) -> String
    func get_item_text(index: int) -> String
    func get_item_text_direction(index: int) -> enum Control.TextDirection
    func get_item_tooltip(index: int) -> String
    func is_item_checkable(index: int) -> bool
    func is_item_checked(index: int) -> bool
    func is_item_disabled(index: int) -> bool
    func is_item_radio_checkable(index: int) -> bool
    func is_item_separator(index: int) -> bool
    func is_item_shortcut_disabled(index: int) -> bool
    func remove_item(index: int)
    func scroll_to_item(index: int)
    func set_focused_item(index: int)
    func set_item_accelerator(index: int, accel: enum Key)
    func set_item_as_checkable(index: int, enable: bool)
    func set_item_as_radio_checkable(index: int, enable: bool)
    func set_item_as_separator(index: int, enable: bool)
    func set_item_checked(index: int, checked: bool)
    func set_item_disabled(index: int, disabled: bool)
    func set_item_icon(index: int, icon: Texture2D)
    func set_item_icon_max_width(index: int, width: int)
    func set_item_icon_modulate(index: int, modulate: Color)
    func set_item_id(index: int, id: int)
    func set_item_indent(index: int, indent: int)
    func set_item_language(index: int, language: String)
    func set_item_metadata(index: int, metadata: Variant)
    func set_item_multistate(index: int, state: int)
    func set_item_shortcut(index: int, shortcut: Shortcut, global: bool = false)
    func set_item_shortcut_disabled(index: int, disabled: bool)
    func set_item_submenu(index: int, submenu: String)
    func set_item_text(index: int, text: String)
    func set_item_text_direction(index: int, direction: enum Control.TextDirection)
    func set_item_tooltip(index: int, tooltip: String)
    func toggle_item_checked(index: int)
    func toggle_item_multistate(index: int)

# Object < Node < Viewport < Window < Popup < PopupPanel

  class PopupPanel extends Popup:

    pass 

# Object < Node < WorldEnvironment

  class WorldEnvironment extends Node:

    var camera_attributes: CameraAttributes
    var environment: Environment

# Object < RefCounted

  class RefCounted extends Object:

    func get_reference_count() -> int
    func init_ref() -> bool
    func reference() -> bool
    func unreference() -> bool

# Object < RefCounted < Resource

  class Resource extends RefCounted:

    var resource_local_to_scene: bool = false
    var resource_name: String = ""
    var resource_path: String = ""

    signal changed()
    signal setup_local_to_scene_requested()

    func duplicate(subresources: bool = false) -> Resource
    func emit_changed()
    func get_local_scene() -> Node
    func get_rid() -> RID
    func setup_local_to_scene()
    func take_over_path(path: String)

    func _get_rid() -> RID
    func _setup_local_to_scene()

# Object < RefCounted < Resource < Animation

  class Animation extends Resource:

    enum FindMode {
      FIND_MODE_NEAREST = 0,
      FIND_MODE_APPROX = 1,
      FIND_MODE_EXACT = 2,
    }

    enum InterpolationType {
      INTERPOLATION_NEAREST = 0,
      INTERPOLATION_LINEAR = 1,
      INTERPOLATION_CUBIC = 2,
      INTERPOLATION_LINEAR_ANGLE = 3,
      INTERPOLATION_CUBIC_ANGLE = 4,
    }

    enum LoopedFlag {
      LOOPED_FLAG_NONE = 0,
      LOOPED_FLAG_END = 1,
      LOOPED_FLAG_START = 2,
    }

    enum LoopMode {
      LOOP_NONE = 0,
      LOOP_LINEAR = 1,
      LOOP_PINGPONG = 2,
    }

    enum TrackType {
      TYPE_VALUE = 0,
      TYPE_POSITION_3D = 1,
      TYPE_ROTATION_3D = 2,
      TYPE_SCALE_3D = 3,
      TYPE_BLEND_SHAPE = 4,
      TYPE_METHOD = 5,
      TYPE_BEZIER = 6,
      TYPE_AUDIO = 7,
      TYPE_ANIMATION = 8,
    }

    enum UpdateMode {
      UPDATE_CONTINUOUS = 0,
      UPDATE_DISCRETE = 1,
      UPDATE_CAPTURE = 2,
    }

    var length: float = 1.0
    var loop_mode: enum LoopMode = LOOP_NONE
    var step: float = 0.1

    func add_track(type: enum TrackType, at_position: int = -1) -> int
    func animation_track_get_key_animation(track_idx: int, key_idx: int) -> StringName
    func animation_track_insert_key(track_idx: int, time: float, animation: StringName) -> int
    func animation_track_set_key_animation(track_idx: int, key_idx: int, animation: StringName)
    func audio_track_get_key_end_offset(track_idx: int, key_idx: int) -> float
    func audio_track_get_key_start_offset(track_idx: int, key_idx: int) -> float
    func audio_track_get_key_stream(track_idx: int, key_idx: int) -> Resource
    func audio_track_insert_key(track_idx: int, time: float, stream: Resource, start_offset: float = 0, end_offset: float = 0) -> int
    func audio_track_is_use_blend(track_idx: int) -> bool
    func audio_track_set_key_end_offset(track_idx: int, key_idx: int, offset: float)
    func audio_track_set_key_start_offset(track_idx: int, key_idx: int, offset: float)
    func audio_track_set_key_stream(track_idx: int, key_idx: int, stream: Resource)
    func audio_track_set_use_blend(track_idx: int, enable: bool)
    func bezier_track_get_key_in_handle(track_idx: int, key_idx: int) -> Vector2
    func bezier_track_get_key_out_handle(track_idx: int, key_idx: int) -> Vector2
    func bezier_track_get_key_value(track_idx: int, key_idx: int) -> float
    func bezier_track_insert_key(track_idx: int, time: float, value: float, in_handle: Vector2 = Vector2(0, 0), out_handle: Vector2 = Vector2(0, 0)) -> int
    func bezier_track_interpolate(track_idx: int, time: float) -> float
    func bezier_track_set_key_in_handle(track_idx: int, key_idx: int, in_handle: Vector2, balanced_value_time_ratio: float = 1.0)
    func bezier_track_set_key_out_handle(track_idx: int, key_idx: int, out_handle: Vector2, balanced_value_time_ratio: float = 1.0)
    func bezier_track_set_key_value(track_idx: int, key_idx: int, value: float)
    func blend_shape_track_insert_key(track_idx: int, time: float, amount: float) -> int
    func blend_shape_track_interpolate(track_idx: int, time_sec: float) -> float
    func clear()
    func compress(page_size: int = 8192, fps: int = 120, split_tolerance: float = 4.0)
    func copy_track(track_idx: int, to_animation: Animation)
    func find_track(path: NodePath, type: enum TrackType) -> int
    func get_track_count() -> int
    func method_track_get_name(track_idx: int, key_idx: int) -> StringName
    func method_track_get_params(track_idx: int, key_idx: int) -> Array
    func position_track_insert_key(track_idx: int, time: float, position: Vector3) -> int
    func position_track_interpolate(track_idx: int, time_sec: float) -> Vector3
    func remove_track(track_idx: int)
    func rotation_track_insert_key(track_idx: int, time: float, rotation: Quaternion) -> int
    func rotation_track_interpolate(track_idx: int, time_sec: float) -> Quaternion
    func scale_track_insert_key(track_idx: int, time: float, scale: Vector3) -> int
    func scale_track_interpolate(track_idx: int, time_sec: float) -> Vector3
    func track_find_key(track_idx: int, time: float, find_mode: enum FindMode = FIND_MODE_NEAREST) -> int
    func track_get_interpolation_loop_wrap(track_idx: int) -> bool
    func track_get_interpolation_type(track_idx: int) -> enum InterpolationType
    func track_get_key_count(track_idx: int) -> int
    func track_get_key_time(track_idx: int, key_idx: int) -> float
    func track_get_key_transition(track_idx: int, key_idx: int) -> float
    func track_get_key_value(track_idx: int, key_idx: int) -> Variant
    func track_get_path(track_idx: int) -> NodePath
    func track_get_type(track_idx: int) -> enum TrackType
    func track_insert_key(track_idx: int, time: float, key: Variant, transition: float = 1) -> int
    func track_is_compressed(track_idx: int) -> bool
    func track_is_enabled(track_idx: int) -> bool
    func track_is_imported(track_idx: int) -> bool
    func track_move_down(track_idx: int)
    func track_move_to(track_idx: int, to_idx: int)
    func track_move_up(track_idx: int)
    func track_remove_key(track_idx: int, key_idx: int)
    func track_remove_key_at_time(track_idx: int, time: float)
    func track_set_enabled(track_idx: int, enabled: bool)
    func track_set_imported(track_idx: int, imported: bool)
    func track_set_interpolation_loop_wrap(track_idx: int, interpolation: bool)
    func track_set_interpolation_type(track_idx: int, interpolation: enum InterpolationType)
    func track_set_key_time(track_idx: int, key_idx: int, time: float)
    func track_set_key_transition(track_idx: int, key_idx: int, transition: float)
    func track_set_key_value(track_idx: int, key: int, value: Variant)
    func track_set_path(track_idx: int, path: NodePath)
    func track_swap(track_idx: int, with_idx: int)
    func value_track_get_update_mode(track_idx: int) -> enum UpdateMode
    func value_track_interpolate(track_idx: int, time_sec: float) -> Variant
    func value_track_set_update_mode(track_idx: int, mode: enum UpdateMode)

# Object < RefCounted < Resource < AnimationLibrary

  class AnimationLibrary extends Resource:

    signal animation_added(name: StringName)
    signal animation_changed(name: StringName)
    signal animation_removed(name: StringName)
    signal animation_renamed(name: StringName, to_name: StringName)

    func add_animation(name: StringName, animation: Animation) -> enum Error
    func get_animation(name: StringName) -> Animation
    func get_animation_list() -> Array[StringName]
    func has_animation(name: StringName) -> bool
    func remove_animation(name: StringName)
    func rename_animation(name: StringName, newname: StringName)

# Object < RefCounted < Resource < AnimationNode

  class AnimationNode extends Resource:

    enum FilterAction {
      FILTER_IGNORE = 0,
      FILTER_PASS = 1,
      FILTER_STOP = 2,
      FILTER_BLEND = 3,
    }

    var filter_enabled: bool

    signal animation_node_removed(object_id: int, name: String)
    signal animation_node_renamed(object_id: int, old_name: String, new_name: String)
    signal tree_changed()

    func add_input(name: String) -> bool
    func blend_animation(animation: StringName, time: float, delta: float, seeked: bool, is_external_seeking: bool, blend: float, looped_flag: enum Animation.LoopedFlag = Animation.LOOPED_FLAG_NONE)
    func blend_input(input_index: int, time: float, seek: bool, is_external_seeking: bool, blend: float, filter: enum FilterAction = FILTER_IGNORE, sync: bool = true, test_only: bool = false) -> float
    func blend_node(name: StringName, node: AnimationNode, time: float, seek: bool, is_external_seeking: bool, blend: float, filter: enum FilterAction = FILTER_IGNORE, sync: bool = true, test_only: bool = false) -> float
    func find_input(name: String) -> int
    func get_input_count() -> int
    func get_input_name(input: int) -> String
    func get_parameter(name: StringName) -> Variant
    func is_path_filtered(path: NodePath) -> bool
    func remove_input(index: int)
    func set_filter_path(path: NodePath, enable: bool)
    func set_input_name(input: int, name: String) -> bool
    func set_parameter(name: StringName, value: Variant)

    func _get_caption() -> String
    func _get_child_by_name(name: StringName) -> AnimationNode
    func _get_child_nodes() -> Dictionary
    func _get_parameter_default_value(parameter: StringName) -> Variant
    func _get_parameter_list() -> Array
    func _has_filter() -> bool
    func _is_parameter_read_only(parameter: StringName) -> bool
    func _process(time: float, seek: bool, is_external_seeking: bool, test_only: bool) -> float

# Object < RefCounted < Resource < AnimationNode < AnimationNodeOutput

  class AnimationNodeOutput extends AnimationNode:

    pass 

# Object < RefCounted < Resource < AnimationNode < AnimationNodeSync

  class AnimationNodeSync extends AnimationNode:

    var sync: bool = false

# Object < RefCounted < Resource < AnimationNode < AnimationNodeSync < AnimationNodeAdd2

  class AnimationNodeAdd2 extends AnimationNodeSync:

    pass 

# Object < RefCounted < Resource < AnimationNode < AnimationNodeSync < AnimationNodeAdd3

  class AnimationNodeAdd3 extends AnimationNodeSync:

    pass 

# Object < RefCounted < Resource < AnimationNode < AnimationNodeSync < AnimationNodeBlend2

  class AnimationNodeBlend2 extends AnimationNodeSync:

    pass 

# Object < RefCounted < Resource < AnimationNode < AnimationNodeSync < AnimationNodeBlend3

  class AnimationNodeBlend3 extends AnimationNodeSync:

    pass 

# Object < RefCounted < Resource < AnimationNode < AnimationNodeSync < AnimationNodeOneShot

  class AnimationNodeOneShot extends AnimationNodeSync:

    enum MixMode {
      MIX_MODE_BLEND = 0,
      MIX_MODE_ADD = 1,
    }

    enum OneShotRequest {
      ONE_SHOT_REQUEST_NONE = 0,
      ONE_SHOT_REQUEST_FIRE = 1,
      ONE_SHOT_REQUEST_ABORT = 2,
      ONE_SHOT_REQUEST_FADE_OUT = 3,
    }

    var autorestart: bool = false
    var autorestart_delay: float = 1.0
    var autorestart_random_delay: float = 0.0
    var fadein_curve: Curve
    var fadein_time: float = 0.0
    var fadeout_curve: Curve
    var fadeout_time: float = 0.0
    var mix_mode: enum MixMode = MIX_MODE_BLEND

# Object < RefCounted < Resource < AnimationNode < AnimationNodeSync < AnimationNodeSub2

  class AnimationNodeSub2 extends AnimationNodeSync:

    pass 

# Object < RefCounted < Resource < AnimationNode < AnimationNodeSync < AnimationNodeTransition

  class AnimationNodeTransition extends AnimationNodeSync:

    var allow_transition_to_self: bool = false
    var input_count: int = 0
    var xfade_curve: Curve
    var xfade_time: float = 0.0

    func is_input_reset(input: int) -> bool
    func is_input_set_as_auto_advance(input: int) -> bool
    func set_input_as_auto_advance(input: int, enable: bool)
    func set_input_reset(input: int, enable: bool)

# Object < RefCounted < Resource < AnimationNode < AnimationNodeTimeScale

  class AnimationNodeTimeScale extends AnimationNode:

    pass 

# Object < RefCounted < Resource < AnimationNode < AnimationNodeTimeSeek

  class AnimationNodeTimeSeek extends AnimationNode:

    pass 

# Object < RefCounted < Resource < AnimationNode < AnimationRootNode

  class AnimationRootNode extends AnimationNode:

    pass 

# Object < RefCounted < Resource < AnimationNode < AnimationRootNode < AnimationNodeAnimation

  class AnimationNodeAnimation extends AnimationRootNode:

    enum PlayMode {
      PLAY_MODE_FORWARD = 0,
      PLAY_MODE_BACKWARD = 1,
    }

    var animation: StringName = ""
    var play_mode: enum PlayMode = PLAY_MODE_FORWARD

# Object < RefCounted < Resource < AnimationNode < AnimationRootNode < AnimationNodeBlendSpace1D

  class AnimationNodeBlendSpace1D extends AnimationRootNode:

    enum BlendMode {
      BLEND_MODE_INTERPOLATED = 0,
      BLEND_MODE_DISCRETE = 1,
      BLEND_MODE_DISCRETE_CARRY = 2,
    }

    var blend_mode: enum BlendMode = BLEND_MODE_INTERPOLATED
    var max_space: float = 1.0
    var min_space: float = -1.0
    var snap: float = 0.1
    var sync: bool = false
    var value_label: String = "value"

    func add_blend_point(node: AnimationRootNode, pos: float, at_index: int = -1)
    func get_blend_point_count() -> int
    func get_blend_point_node(point: int) -> AnimationRootNode
    func get_blend_point_position(point: int) -> float
    func remove_blend_point(point: int)
    func set_blend_point_node(point: int, node: AnimationRootNode)
    func set_blend_point_position(point: int, pos: float)

# Object < RefCounted < Resource < AnimationNode < AnimationRootNode < AnimationNodeBlendSpace2D

  class AnimationNodeBlendSpace2D extends AnimationRootNode:

    enum BlendMode {
      BLEND_MODE_INTERPOLATED = 0,
      BLEND_MODE_DISCRETE = 1,
      BLEND_MODE_DISCRETE_CARRY = 2,
    }

    var auto_triangles: bool = true
    var blend_mode: enum BlendMode = BLEND_MODE_INTERPOLATED
    var max_space: Vector2 = Vector2(1, 1)
    var min_space: Vector2 = Vector2(-1, -1)
    var snap: Vector2 = Vector2(0.1, 0.1)
    var sync: bool = false
    var x_label: String = "x"
    var y_label: String = "y"

    signal triangles_updated()

    func add_blend_point(node: AnimationRootNode, pos: Vector2, at_index: int = -1)
    func add_triangle(x: int, y: int, z: int, at_index: int = -1)
    func get_blend_point_count() -> int
    func get_blend_point_node(point: int) -> AnimationRootNode
    func get_blend_point_position(point: int) -> Vector2
    func get_triangle_count() -> int
    func get_triangle_point(triangle: int, point: int) -> int
    func remove_blend_point(point: int)
    func remove_triangle(triangle: int)
    func set_blend_point_node(point: int, node: AnimationRootNode)
    func set_blend_point_position(point: int, pos: Vector2)

# Object < RefCounted < Resource < AnimationNode < AnimationRootNode < AnimationNodeBlendTree

  class AnimationNodeBlendTree extends AnimationRootNode:

    const CONNECTION_ERROR_CONNECTION_EXISTS = 5
    const CONNECTION_ERROR_NO_INPUT = 1
    const CONNECTION_ERROR_NO_INPUT_INDEX = 2
    const CONNECTION_ERROR_NO_OUTPUT = 3
    const CONNECTION_ERROR_SAME_NODE = 4
    const CONNECTION_OK = 0

    var graph_offset: Vector2 = Vector2(0, 0)

    signal node_changed(node_name: StringName)

    func add_node(name: StringName, node: AnimationNode, position: Vector2 = Vector2(0, 0))
    func connect_node(input_node: StringName, input_index: int, output_node: StringName)
    func disconnect_node(input_node: StringName, input_index: int)
    func get_node(name: StringName) -> AnimationNode
    func get_node_position(name: StringName) -> Vector2
    func has_node(name: StringName) -> bool
    func remove_node(name: StringName)
    func rename_node(name: StringName, new_name: StringName)
    func set_node_position(name: StringName, position: Vector2)

# Object < RefCounted < Resource < AnimationNode < AnimationRootNode < AnimationNodeStateMachine

  class AnimationNodeStateMachine extends AnimationRootNode:

    enum StateMachineType {
      STATE_MACHINE_TYPE_ROOT = 0,
      STATE_MACHINE_TYPE_NESTED = 1,
      STATE_MACHINE_TYPE_GROUPED = 2,
    }

    var allow_transition_to_self: bool = false
    var reset_ends: bool = false
    var state_machine_type: enum StateMachineType = STATE_MACHINE_TYPE_ROOT

    func add_node(name: StringName, node: AnimationNode, position: Vector2 = Vector2(0, 0))
    func add_transition(from: StringName, to: StringName, transition: AnimationNodeStateMachineTransition)
    func get_graph_offset() -> Vector2
    func get_node(name: StringName) -> AnimationNode
    func get_node_name(node: AnimationNode) -> StringName
    func get_node_position(name: StringName) -> Vector2
    func get_transition(idx: int) -> AnimationNodeStateMachineTransition
    func get_transition_count() -> int
    func get_transition_from(idx: int) -> StringName
    func get_transition_to(idx: int) -> StringName
    func has_node(name: StringName) -> bool
    func has_transition(from: StringName, to: StringName) -> bool
    func remove_node(name: StringName)
    func remove_transition(from: StringName, to: StringName)
    func remove_transition_by_index(idx: int)
    func rename_node(name: StringName, new_name: StringName)
    func replace_node(name: StringName, node: AnimationNode)
    func set_graph_offset(offset: Vector2)
    func set_node_position(name: StringName, position: Vector2)

# Object < RefCounted < Resource < AnimationNodeStateMachinePlayback

  class AnimationNodeStateMachinePlayback extends Resource:

    func get_current_length() -> float
    func get_current_node() -> StringName
    func get_current_play_position() -> float
    func get_fading_from_node() -> StringName
    func get_travel_path() -> Array[StringName]
    func is_playing() -> bool
    func next()
    func start(node: StringName, reset: bool = true)
    func stop()
    func travel(to_node: StringName, reset_on_teleport: bool = true)

# Object < RefCounted < Resource < AnimationNodeStateMachineTransition

  class AnimationNodeStateMachineTransition extends Resource:

    enum AdvanceMode {
      ADVANCE_MODE_DISABLED = 0,
      ADVANCE_MODE_ENABLED = 1,
      ADVANCE_MODE_AUTO = 2,
    }

    enum SwitchMode {
      SWITCH_MODE_IMMEDIATE = 0,
      SWITCH_MODE_SYNC = 1,
      SWITCH_MODE_AT_END = 2,
    }

    var advance_condition: StringName = ""
    var advance_expression: String = ""
    var advance_mode: enum AdvanceMode = ADVANCE_MODE_ENABLED
    var priority: int = 1
    var reset: bool = true
    var switch_mode: enum SwitchMode = SWITCH_MODE_IMMEDIATE
    var xfade_curve: Curve
    var xfade_time: float = 0.0

    signal advance_condition_changed()

# Object < RefCounted < Resource < AudioBusLayout

  class AudioBusLayout extends Resource:

    pass 

# Object < RefCounted < Resource < AudioEffect

  class AudioEffect extends Resource:

    func _instantiate() -> AudioEffectInstance

# Object < RefCounted < Resource < AudioEffect < AudioEffectAmplify

  class AudioEffectAmplify extends AudioEffect:

    var volume_db: float = 0.0

# Object < RefCounted < Resource < AudioEffect < AudioEffectCapture

  class AudioEffectCapture extends AudioEffect:

    var buffer_length: float = 0.1

    func can_get_buffer(frames: int) -> bool
    func clear_buffer()
    func get_buffer(frames: int) -> PackedVector2Array
    func get_buffer_length_frames() -> int
    func get_discarded_frames() -> int
    func get_frames_available() -> int
    func get_pushed_frames() -> int

# Object < RefCounted < Resource < AudioEffect < AudioEffectChorus

  class AudioEffectChorus extends AudioEffect:

    var dry: float = 1.0
    var voice_count: int = 2
    var wet: float = 0.5

    var "voice/1/cutoff_hz": float = 8000.0
    var "voice/1/delay_ms": float = 15.0
    var "voice/1/depth_ms": float = 2.0
    var "voice/1/level_db": float = 0.0
    var "voice/1/pan": float = -0.5
    var "voice/1/rate_hz": float = 0.8
    var "voice/2/cutoff_hz": float = 8000.0
    var "voice/2/delay_ms": float = 20.0
    var "voice/2/depth_ms": float = 3.0
    var "voice/2/level_db": float = 0.0
    var "voice/2/pan": float = 0.5
    var "voice/2/rate_hz": float = 1.2
    var "voice/3/cutoff_hz": float
    var "voice/3/delay_ms": float
    var "voice/3/depth_ms": float
    var "voice/3/level_db": float
    var "voice/3/pan": float
    var "voice/3/rate_hz": float
    var "voice/4/cutoff_hz": float
    var "voice/4/delay_ms": float
    var "voice/4/depth_ms": float
    var "voice/4/level_db": float
    var "voice/4/pan": float
    var "voice/4/rate_hz": float

    func get_voice_cutoff_hz(voice_idx: int) -> float
    func get_voice_delay_ms(voice_idx: int) -> float
    func get_voice_depth_ms(voice_idx: int) -> float
    func get_voice_level_db(voice_idx: int) -> float
    func get_voice_pan(voice_idx: int) -> float
    func get_voice_rate_hz(voice_idx: int) -> float
    func set_voice_cutoff_hz(voice_idx: int, cutoff_hz: float)
    func set_voice_delay_ms(voice_idx: int, delay_ms: float)
    func set_voice_depth_ms(voice_idx: int, depth_ms: float)
    func set_voice_level_db(voice_idx: int, level_db: float)
    func set_voice_pan(voice_idx: int, pan: float)
    func set_voice_rate_hz(voice_idx: int, rate_hz: float)

# Object < RefCounted < Resource < AudioEffect < AudioEffectCompressor

  class AudioEffectCompressor extends AudioEffect:

    var attack_us: float = 20.0
    var gain: float = 0.0
    var mix: float = 1.0
    var ratio: float = 4.0
    var release_ms: float = 250.0
    var sidechain: StringName = ""
    var threshold: float = 0.0

# Object < RefCounted < Resource < AudioEffect < AudioEffectDelay

  class AudioEffectDelay extends AudioEffect:

    var dry: float = 1.0
    var feedback_active: bool = false
    var feedback_delay_ms: float = 340.0
    var feedback_level_db: float = -6.0
    var feedback_lowpass: float = 16000.0
    var tap1_active: bool = true
    var tap1_delay_ms: float = 250.0
    var tap1_level_db: float = -6.0
    var tap1_pan: float = 0.2
    var tap2_active: bool = true
    var tap2_delay_ms: float = 500.0
    var tap2_level_db: float = -12.0
    var tap2_pan: float = -0.4

# Object < RefCounted < Resource < AudioEffect < AudioEffectDistortion

  class AudioEffectDistortion extends AudioEffect:

    enum Mode {
      MODE_CLIP = 0,
      MODE_ATAN = 1,
      MODE_LOFI = 2,
      MODE_OVERDRIVE = 3,
      MODE_WAVESHAPE = 4,
    }

    var drive: float = 0.0
    var keep_hf_hz: float = 16000.0
    var mode: enum Mode = MODE_CLIP
    var post_gain: float = 0.0
    var pre_gain: float = 0.0

# Object < RefCounted < Resource < AudioEffect < AudioEffectEQ

  class AudioEffectEQ extends AudioEffect:

    func get_band_count() -> int
    func get_band_gain_db(band_idx: int) -> float
    func set_band_gain_db(band_idx: int, volume_db: float)

# Object < RefCounted < Resource < AudioEffect < AudioEffectEQ < AudioEffectEQ10

  class AudioEffectEQ10 extends AudioEffectEQ:

    pass 

# Object < RefCounted < Resource < AudioEffect < AudioEffectEQ < AudioEffectEQ21

  class AudioEffectEQ21 extends AudioEffectEQ:

    pass 

# Object < RefCounted < Resource < AudioEffect < AudioEffectEQ < AudioEffectEQ6

  class AudioEffectEQ6 extends AudioEffectEQ:

    pass 

# Object < RefCounted < Resource < AudioEffect < AudioEffectFilter

  class AudioEffectFilter extends AudioEffect:

    enum FilterDB {
      FILTER_6DB = 0,
      FILTER_12DB = 1,
      FILTER_18DB = 2,
      FILTER_24DB = 3,
    }

    var cutoff_hz: float = 2000.0
    var db: enum FilterDB = FILTER_6DB
    var gain: float = 1.0
    var resonance: float = 0.5

# Object < RefCounted < Resource < AudioEffect < AudioEffectFilter < AudioEffectBandLimitFilter

  class AudioEffectBandLimitFilter extends AudioEffectFilter:

    pass 

# Object < RefCounted < Resource < AudioEffect < AudioEffectFilter < AudioEffectBandPassFilter

  class AudioEffectBandPassFilter extends AudioEffectFilter:

    pass 

# Object < RefCounted < Resource < AudioEffect < AudioEffectFilter < AudioEffectHighPassFilter

  class AudioEffectHighPassFilter extends AudioEffectFilter:

    pass 

# Object < RefCounted < Resource < AudioEffect < AudioEffectFilter < AudioEffectHighShelfFilter

  class AudioEffectHighShelfFilter extends AudioEffectFilter:

    pass 

# Object < RefCounted < Resource < AudioEffect < AudioEffectFilter < AudioEffectLowPassFilter

  class AudioEffectLowPassFilter extends AudioEffectFilter:

    pass 

# Object < RefCounted < Resource < AudioEffect < AudioEffectFilter < AudioEffectLowShelfFilter

  class AudioEffectLowShelfFilter extends AudioEffectFilter:

    pass 

# Object < RefCounted < Resource < AudioEffect < AudioEffectFilter < AudioEffectNotchFilter

  class AudioEffectNotchFilter extends AudioEffectFilter:

    pass 

# Object < RefCounted < Resource < AudioEffect < AudioEffectLimiter

  class AudioEffectLimiter extends AudioEffect:

    var ceiling_db: float = -0.1
    var soft_clip_db: float = 2.0
    var soft_clip_ratio: float = 10.0
    var threshold_db: float = 0.0

# Object < RefCounted < Resource < AudioEffect < AudioEffectPanner

  class AudioEffectPanner extends AudioEffect:

    var pan: float = 0.0

# Object < RefCounted < Resource < AudioEffect < AudioEffectPhaser

  class AudioEffectPhaser extends AudioEffect:

    var depth: float = 1.0
    var feedback: float = 0.7
    var range_max_hz: float = 1600.0
    var range_min_hz: float = 440.0
    var rate_hz: float = 0.5

# Object < RefCounted < Resource < AudioEffect < AudioEffectPitchShift

  class AudioEffectPitchShift extends AudioEffect:

    enum FFTSize {
      FFT_SIZE_256 = 0,
      FFT_SIZE_512 = 1,
      FFT_SIZE_1024 = 2,
      FFT_SIZE_2048 = 3,
      FFT_SIZE_4096 = 4,
      FFT_SIZE_MAX = 5,
    }

    var fft_size: enum FFTSize = FFT_SIZE_2048
    var oversampling: int = 4
    var pitch_scale: float = 1.0

# Object < RefCounted < Resource < AudioEffect < AudioEffectRecord

  class AudioEffectRecord extends AudioEffect:

    var format: enum AudioStreamWAV.Format = AudioStreamWAV.FORMAT_16_BITS

    func get_recording() -> AudioStreamWAV
    func is_recording_active() -> bool
    func set_recording_active(record: bool)

# Object < RefCounted < Resource < AudioEffect < AudioEffectReverb

  class AudioEffectReverb extends AudioEffect:

    var damping: float = 0.5
    var dry: float = 1.0
    var hipass: float = 0.0
    var predelay_feedback: float = 0.4
    var predelay_msec: float = 150.0
    var room_size: float = 0.8
    var spread: float = 1.0
    var wet: float = 0.5

# Object < RefCounted < Resource < AudioEffect < AudioEffectSpectrumAnalyzer

  class AudioEffectSpectrumAnalyzer extends AudioEffect:

    enum FFTSize {
      FFT_SIZE_256 = 0,
      FFT_SIZE_512 = 1,
      FFT_SIZE_1024 = 2,
      FFT_SIZE_2048 = 3,
      FFT_SIZE_4096 = 4,
      FFT_SIZE_MAX = 5,
    }

    var buffer_length: float = 2.0
    var fft_size: enum FFTSize = FFT_SIZE_1024
    var tap_back_pos: float = 0.01

# Object < RefCounted < Resource < AudioEffect < AudioEffectStereoEnhance

  class AudioEffectStereoEnhance extends AudioEffect:

    var pan_pullout: float = 1.0
    var surround: float = 0.0
    var time_pullout_ms: float = 0.0

# Object < RefCounted < Resource < AudioStream

  class AudioStream extends Resource:

    func get_length() -> float
    func instantiate_playback() -> AudioStreamPlayback
    func is_monophonic() -> bool

    func _get_beat_count() -> int
    func _get_bpm() -> float
    func _get_length() -> float
    func _get_stream_name() -> String
    func _instantiate_playback() -> AudioStreamPlayback
    func _is_monophonic() -> bool

# Object < RefCounted < Resource < AudioStream < AudioStreamGenerator

  class AudioStreamGenerator extends AudioStream:

    var buffer_length: float = 0.5
    var mix_rate: float = 44100.0

# Object < RefCounted < Resource < AudioStream < AudioStreamMicrophone

  class AudioStreamMicrophone extends AudioStream:

    pass 

# Object < RefCounted < Resource < AudioStream < AudioStreamPolyphonic

  class AudioStreamPolyphonic extends AudioStream:

    var polyphony: int = 32

# Object < RefCounted < Resource < AudioStream < AudioStreamRandomizer

  class AudioStreamRandomizer extends AudioStream:

    enum PlaybackMode {
      PLAYBACK_RANDOM_NO_REPEATS = 0,
      PLAYBACK_RANDOM = 1,
      PLAYBACK_SEQUENTIAL = 2,
    }

    var playback_mode: enum PlaybackMode = PLAYBACK_RANDOM_NO_REPEATS
    var random_pitch: float = 1.0
    var random_volume_offset_db: float = 0.0
    var streams_count: int = 0

    func add_stream(index: int, stream: AudioStream, weight: float = 1.0)
    func get_stream(index: int) -> AudioStream
    func get_stream_probability_weight(index: int) -> float
    func move_stream(index_from: int, index_to: int)
    func remove_stream(index: int)
    func set_stream(index: int, stream: AudioStream)
    func set_stream_probability_weight(index: int, weight: float)

# Object < RefCounted < Resource < AudioStream < AudioStreamWAV

  class AudioStreamWAV extends AudioStream:

    enum Format {
      FORMAT_8_BITS = 0,
      FORMAT_16_BITS = 1,
      FORMAT_IMA_ADPCM = 2,
    }

    enum LoopMode {
      LOOP_DISABLED = 0,
      LOOP_FORWARD = 1,
      LOOP_PINGPONG = 2,
      LOOP_BACKWARD = 3,
    }

    var data: PackedByteArray = PackedByteArray()
    var format: enum Format = FORMAT_8_BITS
    var loop_begin: int = 0
    var loop_end: int = 0
    var loop_mode: enum LoopMode = LOOP_DISABLED
    var mix_rate: int = 44100
    var stereo: bool = false

    func save_to_wav(path: String) -> enum Error

# Object < RefCounted < Resource < BitMap

  class BitMap extends Resource:

    func convert_to_image() -> Image
    func create(size: Vector2i)
    func create_from_image_alpha(image: Image, threshold: float = 0.1)
    func get_bit(x: int, y: int) -> bool
    func get_bitv(position: Vector2i) -> bool
    func get_size() -> Vector2i
    func get_true_bit_count() -> int
    func grow_mask(pixels: int, rect: Rect2i)
    func opaque_to_polygons(rect: Rect2i, epsilon: float = 2.0) -> Array[PackedVector2Array]
    func resize(new_size: Vector2i)
    func set_bit(x: int, y: int, bit: bool)
    func set_bit_rect(rect: Rect2i, bit: bool)
    func set_bitv(position: Vector2i, bit: bool)

# Object < RefCounted < Resource < BoneMap

  class BoneMap extends Resource:

    var profile: SkeletonProfile

    signal bone_map_updated()
    signal profile_updated()

    func find_profile_bone_name(skeleton_bone_name: StringName) -> StringName
    func get_skeleton_bone_name(profile_bone_name: StringName) -> StringName
    func set_skeleton_bone_name(profile_bone_name: StringName, skeleton_bone_name: StringName)

# Object < RefCounted < Resource < ButtonGroup

  class ButtonGroup extends Resource:

    var allow_unpress: bool = false

    signal pressed(button: BaseButton)

    func get_buttons() -> Array[BaseButton]
    func get_pressed_button() -> BaseButton

# Object < RefCounted < Resource < CameraAttributes

  class CameraAttributes extends Resource:

    var auto_exposure_enabled: bool = false
    var auto_exposure_scale: float = 0.4
    var auto_exposure_speed: float = 0.5
    var exposure_multiplier: float = 1.0
    var exposure_sensitivity: float = 100.0

# Object < RefCounted < Resource < CameraAttributes < CameraAttributesPhysical

  class CameraAttributesPhysical extends CameraAttributes:

    var auto_exposure_max_exposure_value: float = 10.0
    var auto_exposure_min_exposure_value: float = -8.0
    var exposure_aperture: float = 16.0
    var exposure_shutter_speed: float = 100.0
    var frustum_far: float = 4000.0
    var frustum_focal_length: float = 35.0
    var frustum_focus_distance: float = 10.0
    var frustum_near: float = 0.05

    func get_fov() -> float

# Object < RefCounted < Resource < CameraAttributes < CameraAttributesPractical

  class CameraAttributesPractical extends CameraAttributes:

    var auto_exposure_max_sensitivity: float = 800.0
    var auto_exposure_min_sensitivity: float = 0.0
    var dof_blur_amount: float = 0.1
    var dof_blur_far_distance: float = 10.0
    var dof_blur_far_enabled: bool = false
    var dof_blur_far_transition: float = 5.0
    var dof_blur_near_distance: float = 2.0
    var dof_blur_near_enabled: bool = false
    var dof_blur_near_transition: float = 1.0

# Object < RefCounted < Resource < CryptoKey

  class CryptoKey extends Resource:

    func is_public_only() -> bool
    func load(path: String, public_only: bool = false) -> enum Error
    func load_from_string(string_key: String, public_only: bool = false) -> enum Error
    func save(path: String, public_only: bool = false) -> enum Error
    func save_to_string(public_only: bool = false) -> String

# Object < RefCounted < Resource < Curve

  class Curve extends Resource:

    enum TangentMode {
      TANGENT_FREE = 0,
      TANGENT_LINEAR = 1,
      TANGENT_MODE_COUNT = 2,
    }

    var bake_resolution: int = 100
    var max_value: float = 1.0
    var min_value: float = 0.0
    var point_count: int = 0

    signal range_changed()

    func add_point(position: Vector2, left_tangent: float = 0, right_tangent: float = 0, left_mode: enum TangentMode = TANGENT_FREE, right_mode: enum TangentMode = TANGENT_FREE) -> int
    func bake()
    func clean_dupes()
    func clear_points()
    func get_point_left_mode(index: int) -> enum TangentMode
    func get_point_left_tangent(index: int) -> float
    func get_point_position(index: int) -> Vector2
    func get_point_right_mode(index: int) -> enum TangentMode
    func get_point_right_tangent(index: int) -> float
    func remove_point(index: int)
    func sample(offset: float) -> float
    func sample_baked(offset: float) -> float
    func set_point_left_mode(index: int, mode: enum TangentMode)
    func set_point_left_tangent(index: int, tangent: float)
    func set_point_offset(index: int, offset: float) -> int
    func set_point_right_mode(index: int, mode: enum TangentMode)
    func set_point_right_tangent(index: int, tangent: float)
    func set_point_value(index: int, y: float)

# Object < RefCounted < Resource < Curve2D

  class Curve2D extends Resource:

    var bake_interval: float = 5.0
    var point_count: int = 0

    func add_point(position: Vector2, in: Vector2 = Vector2(0, 0), out: Vector2 = Vector2(0, 0), index: int = -1)
    func clear_points()
    func get_baked_length() -> float
    func get_baked_points() -> PackedVector2Array
    func get_closest_offset(to_point: Vector2) -> float
    func get_closest_point(to_point: Vector2) -> Vector2
    func get_point_in(idx: int) -> Vector2
    func get_point_out(idx: int) -> Vector2
    func get_point_position(idx: int) -> Vector2
    func remove_point(idx: int)
    func sample(idx: int, t: float) -> Vector2
    func sample_baked(offset: float = 0.0, cubic: bool = false) -> Vector2
    func sample_baked_with_rotation(offset: float = 0.0, cubic: bool = false) -> Transform2D
    func samplef(fofs: float) -> Vector2
    func set_point_in(idx: int, position: Vector2)
    func set_point_out(idx: int, position: Vector2)
    func set_point_position(idx: int, position: Vector2)
    func tessellate(max_stages: int = 5, tolerance_degrees: float = 4) -> PackedVector2Array
    func tessellate_even_length(max_stages: int = 5, tolerance_length: float = 20.0) -> PackedVector2Array

# Object < RefCounted < Resource < Curve3D

  class Curve3D extends Resource:

    var bake_interval: float = 0.2
    var point_count: int = 0
    var up_vector_enabled: bool = true

    func add_point(position: Vector3, in: Vector3 = Vector3(0, 0, 0), out: Vector3 = Vector3(0, 0, 0), index: int = -1)
    func clear_points()
    func get_baked_length() -> float
    func get_baked_points() -> PackedVector3Array
    func get_baked_tilts() -> PackedFloat32Array
    func get_baked_up_vectors() -> PackedVector3Array
    func get_closest_offset(to_point: Vector3) -> float
    func get_closest_point(to_point: Vector3) -> Vector3
    func get_point_in(idx: int) -> Vector3
    func get_point_out(idx: int) -> Vector3
    func get_point_position(idx: int) -> Vector3
    func get_point_tilt(idx: int) -> float
    func remove_point(idx: int)
    func sample(idx: int, t: float) -> Vector3
    func sample_baked(offset: float = 0.0, cubic: bool = false) -> Vector3
    func sample_baked_up_vector(offset: float, apply_tilt: bool = false) -> Vector3
    func sample_baked_with_rotation(offset: float = 0.0, cubic: bool = false, apply_tilt: bool = false) -> Transform3D
    func samplef(fofs: float) -> Vector3
    func set_point_in(idx: int, position: Vector3)
    func set_point_out(idx: int, position: Vector3)
    func set_point_position(idx: int, position: Vector3)
    func set_point_tilt(idx: int, tilt: float)
    func tessellate(max_stages: int = 5, tolerance_degrees: float = 4) -> PackedVector3Array
    func tessellate_even_length(max_stages: int = 5, tolerance_length: float = 0.2) -> PackedVector3Array

# Object < RefCounted < Resource < Environment

  class Environment extends Resource:

    enum AmbientSource {
      AMBIENT_SOURCE_BG = 0,
      AMBIENT_SOURCE_DISABLED = 1,
      AMBIENT_SOURCE_COLOR = 2,
      AMBIENT_SOURCE_SKY = 3,
    }

    enum BGMode {
      BG_CLEAR_COLOR = 0,
      BG_COLOR = 1,
      BG_SKY = 2,
      BG_CANVAS = 3,
      BG_KEEP = 4,
      BG_CAMERA_FEED = 5,
      BG_MAX = 6,
    }

    enum GlowBlendMode {
      GLOW_BLEND_MODE_ADDITIVE = 0,
      GLOW_BLEND_MODE_SCREEN = 1,
      GLOW_BLEND_MODE_SOFTLIGHT = 2,
      GLOW_BLEND_MODE_REPLACE = 3,
      GLOW_BLEND_MODE_MIX = 4,
    }

    enum ReflectionSource {
      REFLECTION_SOURCE_BG = 0,
      REFLECTION_SOURCE_DISABLED = 1,
      REFLECTION_SOURCE_SKY = 2,
    }

    enum SDFGIYScale {
      SDFGI_Y_SCALE_50_PERCENT = 0,
      SDFGI_Y_SCALE_75_PERCENT = 1,
      SDFGI_Y_SCALE_100_PERCENT = 2,
    }

    enum ToneMapper {
      TONE_MAPPER_LINEAR = 0,
      TONE_MAPPER_REINHARDT = 1,
      TONE_MAPPER_FILMIC = 2,
      TONE_MAPPER_ACES = 3,
    }

    var adjustment_brightness: float = 1.0
    var adjustment_color_correction: Texture
    var adjustment_contrast: float = 1.0
    var adjustment_enabled: bool = false
    var adjustment_saturation: float = 1.0
    var ambient_light_color: Color = Color(0, 0, 0, 1)
    var ambient_light_energy: float = 1.0
    var ambient_light_sky_contribution: float = 1.0
    var ambient_light_source: enum AmbientSource = AMBIENT_SOURCE_BG
    var background_camera_feed_id: int = 1
    var background_canvas_max_layer: int = 0
    var background_color: Color = Color(0, 0, 0, 1)
    var background_energy_multiplier: float = 1.0
    var background_intensity: float = 30000.0
    var background_mode: enum BGMode = BG_CLEAR_COLOR
    var fog_aerial_perspective: float = 0.0
    var fog_density: float = 0.01
    var fog_enabled: bool = false
    var fog_height: float = 0.0
    var fog_height_density: float = 0.0
    var fog_light_color: Color = Color(0.518, 0.553, 0.608, 1)
    var fog_light_energy: float = 1.0
    var fog_sky_affect: float = 1.0
    var fog_sun_scatter: float = 0.0
    var glow_blend_mode: enum GlowBlendMode = GLOW_BLEND_MODE_SOFTLIGHT
    var glow_bloom: float = 0.0
    var glow_enabled: bool = false
    var glow_hdr_luminance_cap: float = 12.0
    var glow_hdr_scale: float = 2.0
    var glow_hdr_threshold: float = 1.0
    var glow_intensity: float = 0.8
    var glow_map: Texture
    var glow_map_strength: float = 0.8
    var glow_mix: float = 0.05
    var glow_normalized: bool = false
    var glow_strength: float = 1.0
    var reflected_light_source: enum ReflectionSource = REFLECTION_SOURCE_BG
    var sdfgi_bounce_feedback: float = 0.5
    var sdfgi_cascade0_distance: float = 12.8
    var sdfgi_cascades: int = 4
    var sdfgi_enabled: bool = false
    var sdfgi_energy: float = 1.0
    var sdfgi_max_distance: float = 204.8
    var sdfgi_min_cell_size: float = 0.2
    var sdfgi_normal_bias: float = 1.1
    var sdfgi_probe_bias: float = 1.1
    var sdfgi_read_sky_light: bool = true
    var sdfgi_use_occlusion: bool = false
    var sdfgi_y_scale: enum SDFGIYScale = SDFGI_Y_SCALE_75_PERCENT
    var sky: Sky
    var sky_custom_fov: float = 0.0
    var sky_rotation: Vector3 = Vector3(0, 0, 0)
    var ssao_ao_channel_affect: float = 0.0
    var ssao_detail: float = 0.5
    var ssao_enabled: bool = false
    var ssao_horizon: float = 0.06
    var ssao_intensity: float = 2.0
    var ssao_light_affect: float = 0.0
    var ssao_power: float = 1.5
    var ssao_radius: float = 1.0
    var ssao_sharpness: float = 0.98
    var ssil_enabled: bool = false
    var ssil_intensity: float = 1.0
    var ssil_normal_rejection: float = 1.0
    var ssil_radius: float = 5.0
    var ssil_sharpness: float = 0.98
    var ssr_depth_tolerance: float = 0.2
    var ssr_enabled: bool = false
    var ssr_fade_in: float = 0.15
    var ssr_fade_out: float = 2.0
    var ssr_max_steps: int = 64
    var tonemap_exposure: float = 1.0
    var tonemap_mode: enum ToneMapper = TONE_MAPPER_LINEAR
    var tonemap_white: float = 1.0
    var volumetric_fog_albedo: Color = Color(1, 1, 1, 1)
    var volumetric_fog_ambient_inject: float = 0.0
    var volumetric_fog_anisotropy: float = 0.2
    var volumetric_fog_density: float = 0.05
    var volumetric_fog_detail_spread: float = 2.0
    var volumetric_fog_emission: Color = Color(0, 0, 0, 1)
    var volumetric_fog_emission_energy: float = 1.0
    var volumetric_fog_enabled: bool = false
    var volumetric_fog_gi_inject: float = 1.0
    var volumetric_fog_length: float = 64.0
    var volumetric_fog_sky_affect: float = 1.0
    var volumetric_fog_temporal_reprojection_amount: float = 0.9
    var volumetric_fog_temporal_reprojection_enabled: bool = true

    var "glow_levels/1": float = 0.0
    var "glow_levels/2": float = 0.0
    var "glow_levels/3": float = 1.0
    var "glow_levels/4": float = 0.0
    var "glow_levels/5": float = 1.0
    var "glow_levels/6": float = 0.0
    var "glow_levels/7": float = 0.0

    func get_glow_level(idx: int) -> float
    func set_glow_level(idx: int, intensity: float)

# Object < RefCounted < Resource < Font (abstract)

  class Font extends Resource:

    var fallbacks: Array[Font] = []

    func draw_char(canvas_item: RID, pos: Vector2, char: int, font_size: int, modulate: Color = Color(1, 1, 1, 1)) -> float
    func draw_char_outline(canvas_item: RID, pos: Vector2, char: int, font_size: int, size: int = -1, modulate: Color = Color(1, 1, 1, 1)) -> float
    func draw_multiline_string(canvas_item: RID, pos: Vector2, text: String, alignment: enum HorizontalAlignment = HORIZONTAL_ALIGNMENT_LEFT, width: float = -1, font_size: int = 16, max_lines: int = -1, modulate: Color = Color(1, 1, 1, 1), brk_flags: enum TextServer.LineBreakFlag = TextServer.BREAK_MANDATORY & TextServer.BREAK_WORD_BOUND, justification_flags: enum TextServer.JustificationFlag = TextServer.JUSTIFICATION_KASHIDA & TextServer.JUSTIFICATION_WORD_BOUND, direction: enum TextServer.Direction = TextServer.DIRECTION_AUTO, orientation: enum TextServer.Orientation = TextServer.ORIENTATION_HORIZONTAL)
    func draw_multiline_string_outline(canvas_item: RID, pos: Vector2, text: String, alignment: enum HorizontalAlignment = HORIZONTAL_ALIGNMENT_LEFT, width: float = -1, font_size: int = 16, max_lines: int = -1, size: int = 1, modulate: Color = Color(1, 1, 1, 1), brk_flags: enum TextServer.LineBreakFlag = TextServer.BREAK_MANDATORY & TextServer.BREAK_WORD_BOUND, justification_flags: enum TextServer.JustificationFlag = TextServer.JUSTIFICATION_KASHIDA & TextServer.JUSTIFICATION_WORD_BOUND, direction: enum TextServer.Direction = TextServer.DIRECTION_AUTO, orientation: enum TextServer.Orientation = TextServer.ORIENTATION_HORIZONTAL)
    func draw_string(canvas_item: RID, pos: Vector2, text: String, alignment: enum HorizontalAlignment = HORIZONTAL_ALIGNMENT_LEFT, width: float = -1, font_size: int = 16, modulate: Color = Color(1, 1, 1, 1), justification_flags: enum TextServer.JustificationFlag = TextServer.JUSTIFICATION_KASHIDA & TextServer.JUSTIFICATION_WORD_BOUND, direction: enum TextServer.Direction = TextServer.DIRECTION_AUTO, orientation: enum TextServer.Orientation = TextServer.ORIENTATION_HORIZONTAL)
    func draw_string_outline(canvas_item: RID, pos: Vector2, text: String, alignment: enum HorizontalAlignment = HORIZONTAL_ALIGNMENT_LEFT, width: float = -1, font_size: int = 16, size: int = 1, modulate: Color = Color(1, 1, 1, 1), justification_flags: enum TextServer.JustificationFlag = TextServer.JUSTIFICATION_KASHIDA & TextServer.JUSTIFICATION_WORD_BOUND, direction: enum TextServer.Direction = TextServer.DIRECTION_AUTO, orientation: enum TextServer.Orientation = TextServer.ORIENTATION_HORIZONTAL)
    func find_variation(variation_coordinates: Dictionary, face_index: int = 0, strength: float = 0.0, transform: Transform2D = Transform2D(Vector2(1, 0), Vector2(0, 1), Vector2(0, 0)), spacing_top: int = 0, spacing_bottom: int = 0, spacing_space: int = 0, spacing_glyph: int = 0) -> RID
    func get_ascent(font_size: int = 16) -> float
    func get_char_size(char: int, font_size: int) -> Vector2
    func get_descent(font_size: int = 16) -> float
    func get_face_count() -> int
    func get_font_name() -> String
    func get_font_stretch() -> int
    func get_font_style() -> enum TextServer.FontStyle
    func get_font_style_name() -> String
    func get_font_weight() -> int
    func get_height(font_size: int = 16) -> float
    func get_multiline_string_size(text: String, alignment: enum HorizontalAlignment = HORIZONTAL_ALIGNMENT_LEFT, width: float = -1, font_size: int = 16, max_lines: int = -1, brk_flags: enum TextServer.LineBreakFlag = TextServer.BREAK_MANDATORY & TextServer.BREAK_WORD_BOUND, justification_flags: enum TextServer.JustificationFlag = TextServer.JUSTIFICATION_KASHIDA & TextServer.JUSTIFICATION_WORD_BOUND, direction: enum TextServer.Direction = TextServer.DIRECTION_AUTO, orientation: enum TextServer.Orientation = TextServer.ORIENTATION_HORIZONTAL) -> Vector2
    func get_opentype_features() -> Dictionary
    func get_ot_name_strings() -> Dictionary
    func get_rids() -> Array[RID]
    func get_spacing(spacing: enum TextServer.SpacingType) -> int
    func get_string_size(text: String, alignment: enum HorizontalAlignment = HORIZONTAL_ALIGNMENT_LEFT, width: float = -1, font_size: int = 16, justification_flags: enum TextServer.JustificationFlag = TextServer.JUSTIFICATION_KASHIDA & TextServer.JUSTIFICATION_WORD_BOUND, direction: enum TextServer.Direction = TextServer.DIRECTION_AUTO, orientation: enum TextServer.Orientation = TextServer.ORIENTATION_HORIZONTAL) -> Vector2
    func get_supported_chars() -> String
    func get_supported_feature_list() -> Dictionary
    func get_supported_variation_list() -> Dictionary
    func get_underline_position(font_size: int = 16) -> float
    func get_underline_thickness(font_size: int = 16) -> float
    func has_char(char: int) -> bool
    func is_language_supported(language: String) -> bool
    func is_script_supported(script: String) -> bool
    func set_cache_capacity(single_line: int, multi_line: int)

# Object < RefCounted < Resource < Font < FontFile

  class FontFile extends Font:

    var allow_system_fallback: bool = true
    var antialiasing: enum TextServer.FontAntialiasing = TextServer.FONT_ANTIALIASING_GRAY
    var data: PackedByteArray = PackedByteArray()
    var fixed_size: int = 0
    var fixed_size_scale_mode: enum TextServer.FixedSizeScaleMode = TextServer.FIXED_SIZE_SCALE_DISABLE
    var font_name: String = ""
    var font_stretch: int = 100
    var font_style: enum TextServer.FontStyle = 0
    var font_weight: int = 400
    var force_autohinter: bool = false
    var generate_mipmaps: bool = false
    var hinting: enum TextServer.Hinting = TextServer.HINTING_LIGHT
    var msdf_pixel_range: int = 16
    var msdf_size: int = 48
    var multichannel_signed_distance_field: bool = false
    var opentype_feature_overrides: Dictionary = {}
    var oversampling: float = 0.0
    var style_name: String = ""
    var subpixel_positioning: enum TextServer.SubpixelPositioning = TextServer.SUBPIXEL_POSITIONING_AUTO

    func clear_cache()
    func clear_glyphs(cache_index: int, size: Vector2i)
    func clear_kerning_map(cache_index: int, size: int)
    func clear_size_cache(cache_index: int)
    func clear_textures(cache_index: int, size: Vector2i)
    func get_cache_ascent(cache_index: int, size: int) -> float
    func get_cache_count() -> int
    func get_cache_descent(cache_index: int, size: int) -> float
    func get_cache_scale(cache_index: int, size: int) -> float
    func get_cache_underline_position(cache_index: int, size: int) -> float
    func get_cache_underline_thickness(cache_index: int, size: int) -> float
    func get_char_from_glyph_index(size: int, glyph_index: int) -> int
    func get_embolden(cache_index: int) -> float
    func get_extra_spacing(cache_index: int, spacing: enum TextServer.SpacingType) -> int
    func get_face_index(cache_index: int) -> int
    func get_glyph_advance(cache_index: int, size: int, glyph: int) -> Vector2
    func get_glyph_index(size: int, char: int, variation_selector: int) -> int
    func get_glyph_list(cache_index: int, size: Vector2i) -> PackedInt32Array
    func get_glyph_offset(cache_index: int, size: Vector2i, glyph: int) -> Vector2
    func get_glyph_size(cache_index: int, size: Vector2i, glyph: int) -> Vector2
    func get_glyph_texture_idx(cache_index: int, size: Vector2i, glyph: int) -> int
    func get_glyph_uv_rect(cache_index: int, size: Vector2i, glyph: int) -> Rect2
    func get_kerning(cache_index: int, size: int, glyph_pair: Vector2i) -> Vector2
    func get_kerning_list(cache_index: int, size: int) -> Array[Vector2i]
    func get_language_support_override(language: String) -> bool
    func get_language_support_overrides() -> PackedStringArray
    func get_script_support_override(script: String) -> bool
    func get_script_support_overrides() -> PackedStringArray
    func get_size_cache_list(cache_index: int) -> Array[Vector2i]
    func get_texture_count(cache_index: int, size: Vector2i) -> int
    func get_texture_image(cache_index: int, size: Vector2i, texture_index: int) -> Image
    func get_texture_offsets(cache_index: int, size: Vector2i, texture_index: int) -> PackedInt32Array
    func get_transform(cache_index: int) -> Transform2D
    func get_variation_coordinates(cache_index: int) -> Dictionary
    func load_bitmap_font(path: String) -> enum Error
    func load_dynamic_font(path: String) -> enum Error
    func remove_cache(cache_index: int)
    func remove_glyph(cache_index: int, size: Vector2i, glyph: int)
    func remove_kerning(cache_index: int, size: int, glyph_pair: Vector2i)
    func remove_language_support_override(language: String)
    func remove_script_support_override(script: String)
    func remove_size_cache(cache_index: int, size: Vector2i)
    func remove_texture(cache_index: int, size: Vector2i, texture_index: int)
    func render_glyph(cache_index: int, size: Vector2i, index: int)
    func render_range(cache_index: int, size: Vector2i, start: int, end: int)
    func set_cache_ascent(cache_index: int, size: int, ascent: float)
    func set_cache_descent(cache_index: int, size: int, descent: float)
    func set_cache_scale(cache_index: int, size: int, scale: float)
    func set_cache_underline_position(cache_index: int, size: int, underline_position: float)
    func set_cache_underline_thickness(cache_index: int, size: int, underline_thickness: float)
    func set_embolden(cache_index: int, strength: float)
    func set_extra_spacing(cache_index: int, spacing: enum TextServer.SpacingType, value: int)
    func set_face_index(cache_index: int, face_index: int)
    func set_glyph_advance(cache_index: int, size: int, glyph: int, advance: Vector2)
    func set_glyph_offset(cache_index: int, size: Vector2i, glyph: int, offset: Vector2)
    func set_glyph_size(cache_index: int, size: Vector2i, glyph: int, gl_size: Vector2)
    func set_glyph_texture_idx(cache_index: int, size: Vector2i, glyph: int, texture_idx: int)
    func set_glyph_uv_rect(cache_index: int, size: Vector2i, glyph: int, uv_rect: Rect2)
    func set_kerning(cache_index: int, size: int, glyph_pair: Vector2i, kerning: Vector2)
    func set_language_support_override(language: String, supported: bool)
    func set_script_support_override(script: String, supported: bool)
    func set_texture_image(cache_index: int, size: Vector2i, texture_index: int, image: Image)
    func set_texture_offsets(cache_index: int, size: Vector2i, texture_index: int, offset: PackedInt32Array)
    func set_transform(cache_index: int, transform: Transform2D)
    func set_variation_coordinates(cache_index: int, variation_coordinates: Dictionary)

# Object < RefCounted < Resource < Font < FontVariation

  class FontVariation extends Font:

    var base_font: Font
    var opentype_features: Dictionary = {}
    var spacing_bottom: int = 0
    var spacing_glyph: int = 0
    var spacing_space: int = 0
    var spacing_top: int = 0
    var variation_embolden: float = 0.0
    var variation_face_index: int = 0
    var variation_opentype: Dictionary = {}
    var variation_transform: Transform2D = Transform2D(Vector2(1, 0), Vector2(0, 1), Vector2(0, 0))

    func set_spacing(spacing: enum TextServer.SpacingType, value: int)

# Object < RefCounted < Resource < Font < SystemFont

  class SystemFont extends Font:

    var allow_system_fallback: bool = true
    var antialiasing: enum TextServer.FontAntialiasing = TextServer.FONT_ANTIALIASING_GRAY
    var font_italic: bool = false
    var font_names: PackedStringArray = PackedStringArray()
    var font_stretch: int = 100
    var font_weight: int = 400
    var force_autohinter: bool = false
    var generate_mipmaps: bool = false
    var hinting: enum TextServer.Hinting = TextServer.HINTING_LIGHT
    var msdf_pixel_range: int = 16
    var msdf_size: int = 48
    var multichannel_signed_distance_field: bool = false
    var oversampling: float = 0.0
    var subpixel_positioning: enum TextServer.SubpixelPositioning = TextServer.SUBPIXEL_POSITIONING_AUTO

# Object < RefCounted < Resource < Gradient

  class Gradient extends Resource:

    enum ColorSpace {
      GRADIENT_COLOR_SPACE_SRGB = 0,
      GRADIENT_COLOR_SPACE_LINEAR_SRGB = 1,
      GRADIENT_COLOR_SPACE_OKLAB = 2,
    }

    enum InterpolationMode {
      GRADIENT_INTERPOLATE_LINEAR = 0,
      GRADIENT_INTERPOLATE_CONSTANT = 1,
      GRADIENT_INTERPOLATE_CUBIC = 2,
    }

    var colors: PackedColorArray = PackedColorArray(Color(0, 0, 0, 1), Color(1, 1, 1, 1))
    var interpolation_color_space: enum ColorSpace = GRADIENT_COLOR_SPACE_SRGB
    var interpolation_mode: enum InterpolationMode = GRADIENT_INTERPOLATE_LINEAR
    var offsets: PackedFloat32Array = PackedFloat32Array(0, 1)

    func add_point(offset: float, color: Color)
    func get_color(point: int) -> Color
    func get_offset(point: int) -> float
    func get_point_count() -> int
    func remove_point(point: int)
    func reverse()
    func sample(offset: float) -> Color
    func set_color(point: int, color: Color)
    func set_offset(point: int, offset: float)

# Object < RefCounted < Resource < Image

  class Image extends Resource:

    const MAX_HEIGHT = 16777216
    const MAX_WIDTH = 16777216

    enum AlphaMode {
      ALPHA_NONE = 0,
      ALPHA_BIT = 1,
      ALPHA_BLEND = 2,
    }

    enum ASTCFormat {
      ASTC_FORMAT_4x4 = 0,
      ASTC_FORMAT_8x8 = 1,
    }

    enum CompressMode {
      COMPRESS_S3TC = 0,
      COMPRESS_ETC = 1,
      COMPRESS_ETC2 = 2,
      COMPRESS_BPTC = 3,
      COMPRESS_ASTC = 4,
      COMPRESS_MAX = 5,
    }

    enum CompressSource {
      COMPRESS_SOURCE_GENERIC = 0,
      COMPRESS_SOURCE_SRGB = 1,
      COMPRESS_SOURCE_NORMAL = 2,
    }

    enum Format {
      FORMAT_L8 = 0,
      FORMAT_LA8 = 1,
      FORMAT_R8 = 2,
      FORMAT_RG8 = 3,
      FORMAT_RGB8 = 4,
      FORMAT_RGBA8 = 5,
      FORMAT_RGBA4444 = 6,
      FORMAT_RGB565 = 7,
      FORMAT_RF = 8,
      FORMAT_RGF = 9,
      FORMAT_RGBF = 10,
      FORMAT_RGBAF = 11,
      FORMAT_RH = 12,
      FORMAT_RGH = 13,
      FORMAT_RGBH = 14,
      FORMAT_RGBAH = 15,
      FORMAT_RGBE9995 = 16,
      FORMAT_DXT1 = 17,
      FORMAT_DXT3 = 18,
      FORMAT_DXT5 = 19,
      FORMAT_RGTC_R = 20,
      FORMAT_RGTC_RG = 21,
      FORMAT_BPTC_RGBA = 22,
      FORMAT_BPTC_RGBF = 23,
      FORMAT_BPTC_RGBFU = 24,
      FORMAT_ETC = 25,
      FORMAT_ETC2_R11 = 26,
      FORMAT_ETC2_R11S = 27,
      FORMAT_ETC2_RG11 = 28,
      FORMAT_ETC2_RG11S = 29,
      FORMAT_ETC2_RGB8 = 30,
      FORMAT_ETC2_RGBA8 = 31,
      FORMAT_ETC2_RGB8A1 = 32,
      FORMAT_ETC2_RA_AS_RG = 33,
      FORMAT_DXT5_RA_AS_RG = 34,
      FORMAT_ASTC_4x4 = 35,
      FORMAT_ASTC_4x4_HDR = 36,
      FORMAT_ASTC_8x8 = 37,
      FORMAT_ASTC_8x8_HDR = 38,
      FORMAT_MAX = 39,
    }

    enum Interpolation {
      INTERPOLATE_NEAREST = 0,
      INTERPOLATE_BILINEAR = 1,
      INTERPOLATE_CUBIC = 2,
      INTERPOLATE_TRILINEAR = 3,
      INTERPOLATE_LANCZOS = 4,
    }

    enum UsedChannels {
      USED_CHANNELS_L = 0,
      USED_CHANNELS_LA = 1,
      USED_CHANNELS_R = 2,
      USED_CHANNELS_RG = 3,
      USED_CHANNELS_RGB = 4,
      USED_CHANNELS_RGBA = 5,
    }

    static func create(width: int, height: int, use_mipmaps: bool, format: enum Format) -> Image
    static func create_from_data(width: int, height: int, use_mipmaps: bool, format: enum Format, data: PackedByteArray) -> Image
    static func load_from_file(path: String) -> Image

    var data: Dictionary = {"data", PackedByteArray(), "format", "Lum8", "height", 0, "mipmaps", false, "width", 0}

    func adjust_bcs(brightness: float, contrast: float, saturation: float)
    func blend_rect(src: Image, src_rect: Rect2i, dst: Vector2i)
    func blend_rect_mask(src: Image, mask: Image, src_rect: Rect2i, dst: Vector2i)
    func blit_rect(src: Image, src_rect: Rect2i, dst: Vector2i)
    func blit_rect_mask(src: Image, mask: Image, src_rect: Rect2i, dst: Vector2i)
    func bump_map_to_normal_map(bump_scale: float = 1.0)
    func clear_mipmaps()
    func compress(mode: enum CompressMode, source: enum CompressSource = COMPRESS_SOURCE_GENERIC, astc_format: enum ASTCFormat = ASTC_FORMAT_4x4) -> enum Error
    func compress_from_channels(mode: enum CompressMode, channels: enum UsedChannels, astc_format: enum ASTCFormat = ASTC_FORMAT_4x4) -> enum Error
    func compute_image_metrics(compared_image: Image, use_luma: bool) -> Dictionary
    func convert(format: enum Format)
    func copy_from(src: Image)
    func crop(width: int, height: int)
    func decompress() -> enum Error
    func detect_alpha() -> enum AlphaMode
    func detect_used_channels(source: enum CompressSource = COMPRESS_SOURCE_GENERIC) -> enum UsedChannels
    func fill(color: Color)
    func fill_rect(rect: Rect2i, color: Color)
    func fix_alpha_edges()
    func flip_x()
    func flip_y()
    func generate_mipmaps(renormalize: bool = false) -> enum Error
    func get_data() -> PackedByteArray
    func get_format() -> enum Format
    func get_height() -> int
    func get_mipmap_count() -> int
    func get_mipmap_offset(mipmap: int) -> int
    func get_pixel(x: int, y: int) -> Color
    func get_pixelv(point: Vector2i) -> Color
    func get_region(region: Rect2i) -> Image
    func get_size() -> Vector2i
    func get_used_rect() -> Rect2i
    func get_width() -> int
    func has_mipmaps() -> bool
    func is_compressed() -> bool
    func is_empty() -> bool
    func is_invisible() -> bool
    func load(path: String) -> enum Error
    func load_bmp_from_buffer(buffer: PackedByteArray) -> enum Error
    func load_jpg_from_buffer(buffer: PackedByteArray) -> enum Error
    func load_ktx_from_buffer(buffer: PackedByteArray) -> enum Error
    func load_png_from_buffer(buffer: PackedByteArray) -> enum Error
    func load_svg_from_buffer(buffer: PackedByteArray, scale: float = 1.0) -> enum Error
    func load_svg_from_string(svg_str: String, scale: float = 1.0) -> enum Error
    func load_tga_from_buffer(buffer: PackedByteArray) -> enum Error
    func load_webp_from_buffer(buffer: PackedByteArray) -> enum Error
    func normal_map_to_xy()
    func premultiply_alpha()
    func resize(width: int, height: int, interpolation: enum Interpolation = INTERPOLATE_BILINEAR)
    func resize_to_po2(square: bool = false, interpolation: enum Interpolation = INTERPOLATE_BILINEAR)
    func rgbe_to_srgb() -> Image
    func rotate_180()
    func rotate_90(direction: enum ClockDirection)
    func save_exr(path: String, grayscale: bool = false) -> enum Error
    func save_exr_to_buffer(grayscale: bool = false) -> PackedByteArray
    func save_jpg(path: String, quality: float = 0.75) -> enum Error
    func save_jpg_to_buffer(quality: float = 0.75) -> PackedByteArray
    func save_png(path: String) -> enum Error
    func save_png_to_buffer() -> PackedByteArray
    func save_webp(path: String, lossy: bool = false, quality: float = 0.75) -> enum Error
    func save_webp_to_buffer(lossy: bool = false, quality: float = 0.75) -> PackedByteArray
    func set_data(width: int, height: int, use_mipmaps: bool, format: enum Format, data: PackedByteArray)
    func set_pixel(x: int, y: int, color: Color)
    func set_pixelv(point: Vector2i, color: Color)
    func shrink_x2()
    func srgb_to_linear()

# Object < RefCounted < Resource < ImporterMesh

  class ImporterMesh extends Resource:

    var _data: Dictionary = {"surfaces", []}

    func add_blend_shape(name: String)
    func add_surface(primitive: enum Mesh.PrimitiveType, arrays: Array, blend_shapes: Array[Array] = [], lods: Dictionary = {}, material: Material = null, name: String = "", flags: int = 0)
    func clear()
    func generate_lods(normal_merge_angle: float, normal_split_angle: float, bone_transform_array: Array)
    func get_blend_shape_count() -> int
    func get_blend_shape_mode() -> enum Mesh.BlendShapeMode
    func get_blend_shape_name(blend_shape_idx: int) -> String
    func get_lightmap_size_hint() -> Vector2i
    func get_mesh(base_mesh: ArrayMesh = null) -> ArrayMesh
    func get_surface_arrays(surface_idx: int) -> Array
    func get_surface_blend_shape_arrays(surface_idx: int, blend_shape_idx: int) -> Array
    func get_surface_count() -> int
    func get_surface_format(surface_idx: int) -> int
    func get_surface_lod_count(surface_idx: int) -> int
    func get_surface_lod_indices(surface_idx: int, lod_idx: int) -> PackedInt32Array
    func get_surface_lod_size(surface_idx: int, lod_idx: int) -> float
    func get_surface_material(surface_idx: int) -> Material
    func get_surface_name(surface_idx: int) -> String
    func get_surface_primitive_type(surface_idx: int) -> enum Mesh.PrimitiveType
    func set_blend_shape_mode(mode: enum Mesh.BlendShapeMode)
    func set_lightmap_size_hint(size: Vector2i)
    func set_surface_material(surface_idx: int, material: Material)
    func set_surface_name(surface_idx: int, name: String)

# Object < RefCounted < Resource < InputEvent (abstract)

  class InputEvent extends Resource:

    var device: int = 0

    func accumulate(with_event: InputEvent) -> bool
    func as_text() -> String
    func get_action_strength(action: StringName, exact_match: bool = false) -> float
    func is_action(action: StringName, exact_match: bool = false) -> bool
    func is_action_pressed(action: StringName, allow_echo: bool = false, exact_match: bool = false) -> bool
    func is_action_released(action: StringName, exact_match: bool = false) -> bool
    func is_action_type() -> bool
    func is_canceled() -> bool
    func is_echo() -> bool
    func is_match(event: InputEvent, exact_match: bool = true) -> bool
    func is_pressed() -> bool
    func is_released() -> bool
    func xformed_by(xform: Transform2D, local_ofs: Vector2 = Vector2(0, 0)) -> InputEvent

# Object < RefCounted < Resource < InputEvent < InputEventAction

  class InputEventAction extends InputEvent:

    var action: StringName = ""
    var pressed: bool = false
    var strength: float = 1.0

# Object < RefCounted < Resource < InputEvent < InputEventFromWindow (abstract)

  class InputEventFromWindow extends InputEvent:

    var window_id: int = 0

# Object < RefCounted < Resource < InputEvent < InputEventFromWindow < InputEventScreenDrag

  class InputEventScreenDrag extends InputEventFromWindow:

    var index: int = 0
    var pen_inverted: bool = false
    var position: Vector2 = Vector2(0, 0)
    var pressure: float = 0.0
    var relative: Vector2 = Vector2(0, 0)
    var tilt: Vector2 = Vector2(0, 0)
    var velocity: Vector2 = Vector2(0, 0)

# Object < RefCounted < Resource < InputEvent < InputEventFromWindow < InputEventScreenTouch

  class InputEventScreenTouch extends InputEventFromWindow:

    var canceled: bool = false
    var double_tap: bool = false
    var index: int = 0
    var position: Vector2 = Vector2(0, 0)
    var pressed: bool = false

# Object < RefCounted < Resource < InputEvent < InputEventFromWindow < InputEventWithModifiers (abstract)

  class InputEventWithModifiers extends InputEventFromWindow:

    var alt_pressed: bool = false
    var command_or_control_autoremap: bool = false
    var ctrl_pressed: bool = false
    var meta_pressed: bool = false
    var shift_pressed: bool = false

    func get_modifiers_mask() -> enum KeyModifierMask
    func is_command_or_control_pressed() -> bool

# Object < RefCounted < Resource < InputEvent < InputEventFromWindow < InputEventWithModifiers < InputEventGesture (abstract)

  class InputEventGesture extends InputEventWithModifiers:

    var position: Vector2 = Vector2(0, 0)

# Object < RefCounted < Resource < InputEvent < InputEventFromWindow < InputEventWithModifiers < InputEventGesture < InputEventMagnifyGesture

  class InputEventMagnifyGesture extends InputEventGesture:

    var factor: float = 1.0

# Object < RefCounted < Resource < InputEvent < InputEventFromWindow < InputEventWithModifiers < InputEventGesture < InputEventPanGesture

  class InputEventPanGesture extends InputEventGesture:

    var delta: Vector2 = Vector2(0, 0)

# Object < RefCounted < Resource < InputEvent < InputEventFromWindow < InputEventWithModifiers < InputEventKey

  class InputEventKey extends InputEventWithModifiers:

    var echo: bool = false
    var key_label: enum Key = KEY_NONE
    var keycode: enum Key = KEY_NONE
    var physical_keycode: enum Key = KEY_NONE
    var pressed: bool = false
    var unicode: int = 0

    func as_text_key_label() -> String
    func as_text_keycode() -> String
    func as_text_physical_keycode() -> String
    func get_key_label_with_modifiers() -> enum Key
    func get_keycode_with_modifiers() -> enum Key
    func get_physical_keycode_with_modifiers() -> enum Key

# Object < RefCounted < Resource < InputEvent < InputEventFromWindow < InputEventWithModifiers < InputEventMouse (abstract)

  class InputEventMouse extends InputEventWithModifiers:

    var button_mask: enum MouseButtonMask = 0
    var global_position: Vector2 = Vector2(0, 0)
    var position: Vector2 = Vector2(0, 0)

# Object < RefCounted < Resource < InputEvent < InputEventFromWindow < InputEventWithModifiers < InputEventMouse < InputEventMouseButton

  class InputEventMouseButton extends InputEventMouse:

    var button_index: enum MouseButton = MOUSE_BUTTON_NONE
    var canceled: bool = false
    var double_click: bool = false
    var factor: float = 1.0
    var pressed: bool = false

# Object < RefCounted < Resource < InputEvent < InputEventFromWindow < InputEventWithModifiers < InputEventMouse < InputEventMouseMotion

  class InputEventMouseMotion extends InputEventMouse:

    var pen_inverted: bool = false
    var pressure: float = 0.0
    var relative: Vector2 = Vector2(0, 0)
    var tilt: Vector2 = Vector2(0, 0)
    var velocity: Vector2 = Vector2(0, 0)

# Object < RefCounted < Resource < InputEvent < InputEventJoypadButton

  class InputEventJoypadButton extends InputEvent:

    var button_index: enum JoyButton = JOY_BUTTON_A
    var pressed: bool = false
    var pressure: float = 0.0

# Object < RefCounted < Resource < InputEvent < InputEventJoypadMotion

  class InputEventJoypadMotion extends InputEvent:

    var axis: enum JoyAxis = JOY_AXIS_LEFT_X
    var axis_value: float = 0.0

# Object < RefCounted < Resource < InputEvent < InputEventMIDI

  class InputEventMIDI extends InputEvent:

    var channel: int = 0
    var controller_number: int = 0
    var controller_value: int = 0
    var instrument: int = 0
    var message: enum MIDIMessage = MIDI_MESSAGE_NONE
    var pitch: int = 0
    var pressure: int = 0
    var velocity: int = 0

# Object < RefCounted < Resource < InputEvent < InputEventShortcut

  class InputEventShortcut extends InputEvent:

    var shortcut: Shortcut

# Object < RefCounted < Resource < JSON

  class JSON extends Resource:

    static func parse_string(json_string: String) -> Variant
    static func stringify(data: Variant, indent: String = "", sort_keys: bool = true, full_precision: bool = false) -> String

    var data: Variant = null

    func get_error_line() -> int
    func get_error_message() -> String
    func get_parsed_text() -> String
    func parse(json_text: String, keep_text: bool = false) -> enum Error

# Object < RefCounted < Resource < LabelSettings

  class LabelSettings extends Resource:

    var font: Font
    var font_color: Color = Color(1, 1, 1, 1)
    var font_size: int = 16
    var line_spacing: float = 3.0
    var outline_color: Color = Color(1, 1, 1, 1)
    var outline_size: int = 0
    var shadow_color: Color = Color(0, 0, 0, 0)
    var shadow_offset: Vector2 = Vector2(1, 1)
    var shadow_size: int = 1

# Object < RefCounted < Resource < LightmapGIData

  class LightmapGIData extends Resource:

    var light_texture: TextureLayered
    var lightmap_textures: Array[TextureLayered] = []

    func add_user(path: NodePath, uv_scale: Rect2, slice_index: int, sub_instance: int)
    func clear_users()
    func get_user_count() -> int
    func get_user_path(user_idx: int) -> NodePath
    func is_using_spherical_harmonics() -> bool
    func set_uses_spherical_harmonics(uses_spherical_harmonics: bool)

# Object < RefCounted < Resource < Material

  class Material extends Resource:

    const RENDER_PRIORITY_MAX = 127
    const RENDER_PRIORITY_MIN = -128

    var next_pass: Material
    var render_priority: int

    func create_placeholder() -> Resource
    func inspect_native_shader_code()

    func _can_do_next_pass() -> bool
    func _can_use_render_priority() -> bool
    func _get_shader_mode() -> enum Shader.Mode
    func _get_shader_rid() -> RID

# Object < RefCounted < Resource < Material < BaseMaterial3D (abstract)

  class BaseMaterial3D extends Material:

    enum AlphaAntiAliasing {
      ALPHA_ANTIALIASING_OFF = 0,
      ALPHA_ANTIALIASING_ALPHA_TO_COVERAGE = 1,
      ALPHA_ANTIALIASING_ALPHA_TO_COVERAGE_AND_TO_ONE = 2,
    }

    enum BillboardMode {
      BILLBOARD_DISABLED = 0,
      BILLBOARD_ENABLED = 1,
      BILLBOARD_FIXED_Y = 2,
      BILLBOARD_PARTICLES = 3,
    }

    enum BlendMode {
      BLEND_MODE_MIX = 0,
      BLEND_MODE_ADD = 1,
      BLEND_MODE_SUB = 2,
      BLEND_MODE_MUL = 3,
    }

    enum CullMode {
      CULL_BACK = 0,
      CULL_FRONT = 1,
      CULL_DISABLED = 2,
    }

    enum DepthDrawMode {
      DEPTH_DRAW_OPAQUE_ONLY = 0,
      DEPTH_DRAW_ALWAYS = 1,
      DEPTH_DRAW_DISABLED = 2,
    }

    enum DetailUV {
      DETAIL_UV_1 = 0,
      DETAIL_UV_2 = 1,
    }

    enum DiffuseMode {
      DIFFUSE_BURLEY = 0,
      DIFFUSE_LAMBERT = 1,
      DIFFUSE_LAMBERT_WRAP = 2,
      DIFFUSE_TOON = 3,
    }

    enum DistanceFadeMode {
      DISTANCE_FADE_DISABLED = 0,
      DISTANCE_FADE_PIXEL_ALPHA = 1,
      DISTANCE_FADE_PIXEL_DITHER = 2,
      DISTANCE_FADE_OBJECT_DITHER = 3,
    }

    enum EmissionOperator {
      EMISSION_OP_ADD = 0,
      EMISSION_OP_MULTIPLY = 1,
    }

    enum Feature {
      FEATURE_EMISSION = 0,
      FEATURE_NORMAL_MAPPING = 1,
      FEATURE_RIM = 2,
      FEATURE_CLEARCOAT = 3,
      FEATURE_ANISOTROPY = 4,
      FEATURE_AMBIENT_OCCLUSION = 5,
      FEATURE_HEIGHT_MAPPING = 6,
      FEATURE_SUBSURFACE_SCATTERING = 7,
      FEATURE_SUBSURFACE_TRANSMITTANCE = 8,
      FEATURE_BACKLIGHT = 9,
      FEATURE_REFRACTION = 10,
      FEATURE_DETAIL = 11,
      FEATURE_MAX = 12,
    }

    enum Flags {
      FLAG_DISABLE_DEPTH_TEST = 0,
      FLAG_ALBEDO_FROM_VERTEX_COLOR = 1,
      FLAG_SRGB_VERTEX_COLOR = 2,
      FLAG_USE_POINT_SIZE = 3,
      FLAG_FIXED_SIZE = 4,
      FLAG_BILLBOARD_KEEP_SCALE = 5,
      FLAG_UV1_USE_TRIPLANAR = 6,
      FLAG_UV2_USE_TRIPLANAR = 7,
      FLAG_UV1_USE_WORLD_TRIPLANAR = 8,
      FLAG_UV2_USE_WORLD_TRIPLANAR = 9,
      FLAG_AO_ON_UV2 = 10,
      FLAG_EMISSION_ON_UV2 = 11,
      FLAG_ALBEDO_TEXTURE_FORCE_SRGB = 12,
      FLAG_DONT_RECEIVE_SHADOWS = 13,
      FLAG_DISABLE_AMBIENT_LIGHT = 14,
      FLAG_USE_SHADOW_TO_OPACITY = 15,
      FLAG_USE_TEXTURE_REPEAT = 16,
      FLAG_INVERT_HEIGHTMAP = 17,
      FLAG_SUBSURFACE_MODE_SKIN = 18,
      FLAG_PARTICLE_TRAILS_MODE = 19,
      FLAG_ALBEDO_TEXTURE_MSDF = 20,
      FLAG_DISABLE_FOG = 21,
      FLAG_MAX = 22,
    }

    enum ShadingMode {
      SHADING_MODE_UNSHADED = 0,
      SHADING_MODE_PER_PIXEL = 1,
      SHADING_MODE_PER_VERTEX = 2,
      SHADING_MODE_MAX = 3,
    }

    enum SpecularMode {
      SPECULAR_SCHLICK_GGX = 0,
      SPECULAR_TOON = 1,
      SPECULAR_DISABLED = 2,
    }

    enum TextureChannel {
      TEXTURE_CHANNEL_RED = 0,
      TEXTURE_CHANNEL_GREEN = 1,
      TEXTURE_CHANNEL_BLUE = 2,
      TEXTURE_CHANNEL_ALPHA = 3,
      TEXTURE_CHANNEL_GRAYSCALE = 4,
    }

    enum TextureFilter {
      TEXTURE_FILTER_NEAREST = 0,
      TEXTURE_FILTER_LINEAR = 1,
      TEXTURE_FILTER_NEAREST_WITH_MIPMAPS = 2,
      TEXTURE_FILTER_LINEAR_WITH_MIPMAPS = 3,
      TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC = 4,
      TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC = 5,
      TEXTURE_FILTER_MAX = 6,
    }

    enum TextureParam {
      TEXTURE_ALBEDO = 0,
      TEXTURE_METALLIC = 1,
      TEXTURE_ROUGHNESS = 2,
      TEXTURE_EMISSION = 3,
      TEXTURE_NORMAL = 4,
      TEXTURE_RIM = 5,
      TEXTURE_CLEARCOAT = 6,
      TEXTURE_FLOWMAP = 7,
      TEXTURE_AMBIENT_OCCLUSION = 8,
      TEXTURE_HEIGHTMAP = 9,
      TEXTURE_SUBSURFACE_SCATTERING = 10,
      TEXTURE_SUBSURFACE_TRANSMITTANCE = 11,
      TEXTURE_BACKLIGHT = 12,
      TEXTURE_REFRACTION = 13,
      TEXTURE_DETAIL_MASK = 14,
      TEXTURE_DETAIL_ALBEDO = 15,
      TEXTURE_DETAIL_NORMAL = 16,
      TEXTURE_ORM = 17,
      TEXTURE_MAX = 18,
    }

    enum Transparency {
      TRANSPARENCY_DISABLED = 0,
      TRANSPARENCY_ALPHA = 1,
      TRANSPARENCY_ALPHA_SCISSOR = 2,
      TRANSPARENCY_ALPHA_HASH = 3,
      TRANSPARENCY_ALPHA_DEPTH_PRE_PASS = 4,
      TRANSPARENCY_MAX = 5,
    }

    var albedo_color: Color = Color(1, 1, 1, 1)
    var albedo_texture: Texture2D
    var albedo_texture_force_srgb: bool = false
    var albedo_texture_msdf: bool = false
    var alpha_antialiasing_edge: float
    var alpha_antialiasing_mode: enum AlphaAntiAliasing
    var alpha_hash_scale: float
    var alpha_scissor_threshold: float
    var anisotropy: float = 0.0
    var anisotropy_enabled: bool = false
    var anisotropy_flowmap: Texture2D
    var ao_enabled: bool = false
    var ao_light_affect: float = 0.0
    var ao_on_uv2: bool = false
    var ao_texture: Texture2D
    var ao_texture_channel: enum TextureChannel = TEXTURE_CHANNEL_RED
    var backlight: Color = Color(0, 0, 0, 1)
    var backlight_enabled: bool = false
    var backlight_texture: Texture2D
    var billboard_keep_scale: bool = false
    var billboard_mode: enum BillboardMode = BILLBOARD_DISABLED
    var blend_mode: enum BlendMode = BLEND_MODE_MIX
    var clearcoat: float = 1.0
    var clearcoat_enabled: bool = false
    var clearcoat_roughness: float = 0.5
    var clearcoat_texture: Texture2D
    var cull_mode: enum CullMode = CULL_BACK
    var depth_draw_mode: enum DepthDrawMode = DEPTH_DRAW_OPAQUE_ONLY
    var detail_albedo: Texture2D
    var detail_blend_mode: enum BlendMode = BLEND_MODE_MIX
    var detail_enabled: bool = false
    var detail_mask: Texture2D
    var detail_normal: Texture2D
    var detail_uv_layer: enum DetailUV = DETAIL_UV_1
    var diffuse_mode: enum DiffuseMode = DIFFUSE_BURLEY
    var disable_ambient_light: bool = false
    var disable_fog: bool = false
    var disable_receive_shadows: bool = false
    var distance_fade_max_distance: float = 10.0
    var distance_fade_min_distance: float = 0.0
    var distance_fade_mode: enum DistanceFadeMode = DISTANCE_FADE_DISABLED
    var emission: Color = Color(0, 0, 0, 1)
    var emission_enabled: bool = false
    var emission_energy_multiplier: float = 1.0
    var emission_intensity: float
    var emission_on_uv2: bool = false
    var emission_operator: enum EmissionOperator = EMISSION_OP_ADD
    var emission_texture: Texture2D
    var fixed_size: bool = false
    var grow: bool = false
    var grow_amount: float = 0.0
    var heightmap_deep_parallax: bool = false
    var heightmap_enabled: bool = false
    var heightmap_flip_binormal: bool = false
    var heightmap_flip_tangent: bool = false
    var heightmap_flip_texture: bool = false
    var heightmap_max_layers: int
    var heightmap_min_layers: int
    var heightmap_scale: float = 5.0
    var heightmap_texture: Texture2D
    var metallic: float = 0.0
    var metallic_specular: float = 0.5
    var metallic_texture: Texture2D
    var metallic_texture_channel: enum TextureChannel = TEXTURE_CHANNEL_RED
    var msdf_outline_size: float = 0.0
    var msdf_pixel_range: float = 4.0
    var no_depth_test: bool = false
    var normal_enabled: bool = false
    var normal_scale: float = 1.0
    var normal_texture: Texture2D
    var orm_texture: Texture2D
    var particles_anim_h_frames: int
    var particles_anim_loop: bool
    var particles_anim_v_frames: int
    var point_size: float = 1.0
    var proximity_fade_distance: float = 1.0
    var proximity_fade_enabled: bool = false
    var refraction_enabled: bool = false
    var refraction_scale: float = 0.05
    var refraction_texture: Texture2D
    var refraction_texture_channel: enum TextureChannel = TEXTURE_CHANNEL_RED
    var rim: float = 1.0
    var rim_enabled: bool = false
    var rim_texture: Texture2D
    var rim_tint: float = 0.5
    var roughness: float = 1.0
    var roughness_texture: Texture2D
    var roughness_texture_channel: enum TextureChannel = TEXTURE_CHANNEL_RED
    var shading_mode: enum ShadingMode = SHADING_MODE_PER_PIXEL
    var shadow_to_opacity: bool = false
    var specular_mode: enum SpecularMode = SPECULAR_SCHLICK_GGX
    var subsurf_scatter_enabled: bool = false
    var subsurf_scatter_skin_mode: bool = false
    var subsurf_scatter_strength: float = 0.0
    var subsurf_scatter_texture: Texture2D
    var subsurf_scatter_transmittance_boost: float = 0.0
    var subsurf_scatter_transmittance_color: Color = Color(1, 1, 1, 1)
    var subsurf_scatter_transmittance_depth: float = 0.1
    var subsurf_scatter_transmittance_enabled: bool = false
    var subsurf_scatter_transmittance_texture: Texture2D
    var texture_filter: enum TextureFilter = TEXTURE_FILTER_LINEAR_WITH_MIPMAPS
    var texture_repeat: bool = true
    var transparency: enum Transparency = TRANSPARENCY_DISABLED
    var use_particle_trails: bool = false
    var use_point_size: bool = false
    var uv1_offset: Vector3 = Vector3(0, 0, 0)
    var uv1_scale: Vector3 = Vector3(1, 1, 1)
    var uv1_triplanar: bool = false
    var uv1_triplanar_sharpness: float = 1.0
    var uv1_world_triplanar: bool = false
    var uv2_offset: Vector3 = Vector3(0, 0, 0)
    var uv2_scale: Vector3 = Vector3(1, 1, 1)
    var uv2_triplanar: bool = false
    var uv2_triplanar_sharpness: float = 1.0
    var uv2_world_triplanar: bool = false
    var vertex_color_is_srgb: bool = false
    var vertex_color_use_as_albedo: bool = false

    func get_feature(feature: enum Feature) -> bool
    func get_flag(flag: enum Flags) -> bool
    func get_texture(param: enum TextureParam) -> Texture2D
    func set_feature(feature: enum Feature, enable: bool)
    func set_flag(flag: enum Flags, enable: bool)
    func set_texture(param: enum TextureParam, texture: Texture2D)

# Object < RefCounted < Resource < Material < BaseMaterial3D < ORMMaterial3D

  class ORMMaterial3D extends BaseMaterial3D:

    pass 

# Object < RefCounted < Resource < Material < BaseMaterial3D < StandardMaterial3D

  class StandardMaterial3D extends BaseMaterial3D:

    pass 

# Object < RefCounted < Resource < Material < CanvasItemMaterial

  class CanvasItemMaterial extends Material:

    enum BlendMode {
      BLEND_MODE_MIX = 0,
      BLEND_MODE_ADD = 1,
      BLEND_MODE_SUB = 2,
      BLEND_MODE_MUL = 3,
      BLEND_MODE_PREMULT_ALPHA = 4,
    }

    enum LightMode {
      LIGHT_MODE_NORMAL = 0,
      LIGHT_MODE_UNSHADED = 1,
      LIGHT_MODE_LIGHT_ONLY = 2,
    }

    var blend_mode: enum BlendMode = BLEND_MODE_MIX
    var light_mode: enum LightMode = LIGHT_MODE_NORMAL
    var particles_anim_h_frames: int
    var particles_anim_loop: bool
    var particles_anim_v_frames: int
    var particles_animation: bool = false

# Object < RefCounted < Resource < Material < FogMaterial

  class FogMaterial extends Material:

    var albedo: Color = Color(1, 1, 1, 1)
    var density: float = 1.0
    var density_texture: Texture3D
    var edge_fade: float = 0.1
    var emission: Color = Color(0, 0, 0, 1)
    var height_falloff: float = 0.0

# Object < RefCounted < Resource < Material < PanoramaSkyMaterial

  class PanoramaSkyMaterial extends Material:

    var filter: bool = true
    var panorama: Texture2D

# Object < RefCounted < Resource < Material < ParticleProcessMaterial

  class ParticleProcessMaterial extends Material:

    enum CollisionMode {
      COLLISION_DISABLED = 0,
      COLLISION_RIGID = 1,
      COLLISION_HIDE_ON_CONTACT = 2,
      COLLISION_MAX = 3,
    }

    enum EmissionShape {
      EMISSION_SHAPE_POINT = 0,
      EMISSION_SHAPE_SPHERE = 1,
      EMISSION_SHAPE_SPHERE_SURFACE = 2,
      EMISSION_SHAPE_BOX = 3,
      EMISSION_SHAPE_POINTS = 4,
      EMISSION_SHAPE_DIRECTED_POINTS = 5,
      EMISSION_SHAPE_RING = 6,
      EMISSION_SHAPE_MAX = 7,
    }

    enum Parameter {
      PARAM_INITIAL_LINEAR_VELOCITY = 0,
      PARAM_ANGULAR_VELOCITY = 1,
      PARAM_ORBIT_VELOCITY = 2,
      PARAM_LINEAR_ACCEL = 3,
      PARAM_RADIAL_ACCEL = 4,
      PARAM_TANGENTIAL_ACCEL = 5,
      PARAM_DAMPING = 6,
      PARAM_ANGLE = 7,
      PARAM_SCALE = 8,
      PARAM_HUE_VARIATION = 9,
      PARAM_ANIM_SPEED = 10,
      PARAM_ANIM_OFFSET = 11,
      PARAM_TURB_INFLUENCE_OVER_LIFE = 12,
      PARAM_TURB_VEL_INFLUENCE = 13,
      PARAM_TURB_INIT_DISPLACEMENT = 14,
      PARAM_RADIAL_VELOCITY = 15,
      PARAM_DIRECTIONAL_VELOCITY = 16,
      PARAM_SCALE_OVER_VELOCITY = 17,
      PARAM_MAX = 18,
    }

    enum ParticleFlags {
      PARTICLE_FLAG_ALIGN_Y_TO_VELOCITY = 0,
      PARTICLE_FLAG_ROTATE_Y = 1,
      PARTICLE_FLAG_DISABLE_Z = 2,
      PARTICLE_FLAG_DAMPING_AS_FRICTION = 3,
      PARTICLE_FLAG_MAX = 4,
    }

    enum SubEmitterMode {
      SUB_EMITTER_DISABLED = 0,
      SUB_EMITTER_CONSTANT = 1,
      SUB_EMITTER_AT_END = 2,
      SUB_EMITTER_AT_COLLISION = 3,
      SUB_EMITTER_MAX = 4,
    }

    var alpha_curve: Texture2D
    var angle_curve: Texture2D
    var angle_max: float = 0.0
    var angle_min: float = 0.0
    var angular_velocity_curve: Texture2D
    var angular_velocity_max: float = 0.0
    var angular_velocity_min: float = 0.0
    var anim_offset_curve: Texture2D
    var anim_offset_max: float = 0.0
    var anim_offset_min: float = 0.0
    var anim_speed_curve: Texture2D
    var anim_speed_max: float = 0.0
    var anim_speed_min: float = 0.0
    var attractor_interaction_enabled: bool = true
    var collision_bounce: float
    var collision_friction: float
    var collision_mode: enum CollisionMode = COLLISION_DISABLED
    var collision_use_scale: bool = false
    var color: Color = Color(1, 1, 1, 1)
    var color_initial_ramp: Texture2D
    var color_ramp: Texture2D
    var damping_curve: Texture2D
    var damping_max: float = 0.0
    var damping_min: float = 0.0
    var direction: Vector3 = Vector3(1, 0, 0)
    var directional_velocity_curve: Texture2D
    var directional_velocity_max: float
    var directional_velocity_min: float
    var emission_box_extents: Vector3
    var emission_color_texture: Texture2D
    var emission_curve: Texture2D
    var emission_normal_texture: Texture2D
    var emission_point_count: int
    var emission_point_texture: Texture2D
    var emission_ring_axis: Vector3
    var emission_ring_height: float
    var emission_ring_inner_radius: float
    var emission_ring_radius: float
    var emission_shape: enum EmissionShape = EMISSION_SHAPE_POINT
    var emission_shape_offset: Vector3 = Vector3(0, 0, 0)
    var emission_shape_scale: Vector3 = Vector3(1, 1, 1)
    var emission_sphere_radius: float
    var flatness: float = 0.0
    var gravity: Vector3 = Vector3(0, -9.8, 0)
    var hue_variation_curve: Texture2D
    var hue_variation_max: float = 0.0
    var hue_variation_min: float = 0.0
    var inherit_velocity_ratio: float = 0.0
    var initial_velocity_max: float = 0.0
    var initial_velocity_min: float = 0.0
    var lifetime_randomness: float = 0.0
    var linear_accel_curve: Texture2D
    var linear_accel_max: float = 0.0
    var linear_accel_min: float = 0.0
    var orbit_velocity_curve: Texture2D
    var orbit_velocity_max: float = 0.0
    var orbit_velocity_min: float = 0.0
    var particle_flag_align_y: bool = false
    var particle_flag_damping_as_friction: bool = false
    var particle_flag_disable_z: bool = false
    var particle_flag_rotate_y: bool = false
    var radial_accel_curve: Texture2D
    var radial_accel_max: float = 0.0
    var radial_accel_min: float = 0.0
    var radial_velocity_curve: Texture2D
    var radial_velocity_max: float = 0.0
    var radial_velocity_min: float = 0.0
    var scale_curve: Texture2D
    var scale_max: float = 1.0
    var scale_min: float = 1.0
    var scale_over_velocity_curve: Texture2D
    var scale_over_velocity_max: float = 0.0
    var scale_over_velocity_min: float = 0.0
    var spread: float = 45.0
    var sub_emitter_amount_at_collision: int
    var sub_emitter_amount_at_end: int
    var sub_emitter_frequency: float
    var sub_emitter_keep_velocity: bool = false
    var sub_emitter_mode: enum SubEmitterMode = SUB_EMITTER_DISABLED
    var tangential_accel_curve: Texture2D
    var tangential_accel_max: float = 0.0
    var tangential_accel_min: float = 0.0
    var turbulence_enabled: bool = false
    var turbulence_influence_max: float = 0.1
    var turbulence_influence_min: float = 0.1
    var turbulence_influence_over_life: Texture2D
    var turbulence_initial_displacement_max: float = 0.0
    var turbulence_initial_displacement_min: float = 0.0
    var turbulence_noise_scale: float = 9.0
    var turbulence_noise_speed: Vector3 = Vector3(0, 0, 0)
    var turbulence_noise_speed_random: float = 0.2
    var turbulence_noise_strength: float = 1.0
    var velocity_limit_curve: Texture2D
    var velocity_pivot: Vector3 = Vector3(0, 0, 0)

    func get_param_max(param: enum Parameter) -> float
    func get_param_min(param: enum Parameter) -> float
    func get_param_texture(param: enum Parameter) -> Texture2D
    func get_particle_flag(particle_flag: enum ParticleFlags) -> bool
    func set_param_max(param: enum Parameter, value: float)
    func set_param_min(param: enum Parameter, value: float)
    func set_param_texture(param: enum Parameter, texture: Texture2D)
    func set_particle_flag(particle_flag: enum ParticleFlags, enable: bool)

# Object < RefCounted < Resource < Material < PhysicalSkyMaterial

  class PhysicalSkyMaterial extends Material:

    var energy_multiplier: float = 1.0
    var ground_color: Color = Color(0.1, 0.07, 0.034, 1)
    var mie_coefficient: float = 0.005
    var mie_color: Color = Color(0.69, 0.729, 0.812, 1)
    var mie_eccentricity: float = 0.8
    var night_sky: Texture2D
    var rayleigh_coefficient: float = 2.0
    var rayleigh_color: Color = Color(0.3, 0.405, 0.6, 1)
    var sun_disk_scale: float = 1.0
    var turbidity: float = 10.0
    var use_debanding: bool = true

# Object < RefCounted < Resource < Material < PlaceholderMaterial

  class PlaceholderMaterial extends Material:

    pass 

# Object < RefCounted < Resource < Material < ProceduralSkyMaterial

  class ProceduralSkyMaterial extends Material:

    var ground_bottom_color: Color = Color(0.2, 0.169, 0.133, 1)
    var ground_curve: float = 0.02
    var ground_energy_multiplier: float = 1.0
    var ground_horizon_color: Color = Color(0.6463, 0.6558, 0.6708, 1)
    var sky_cover: Texture2D
    var sky_cover_modulate: Color = Color(1, 1, 1, 1)
    var sky_curve: float = 0.15
    var sky_energy_multiplier: float = 1.0
    var sky_horizon_color: Color = Color(0.6463, 0.6558, 0.6708, 1)
    var sky_top_color: Color = Color(0.385, 0.454, 0.55, 1)
    var sun_angle_max: float = 30.0
    var sun_curve: float = 0.15
    var use_debanding: bool = true

# Object < RefCounted < Resource < Material < ShaderMaterial

  class ShaderMaterial extends Material:

    var shader: Shader

    func get_shader_parameter(param: StringName) -> Variant
    func set_shader_parameter(param: StringName, value: Variant)

# Object < RefCounted < Resource < Mesh

  class Mesh extends Resource:

    enum ArrayCustomFormat {
      ARRAY_CUSTOM_RGBA8_UNORM = 0,
      ARRAY_CUSTOM_RGBA8_SNORM = 1,
      ARRAY_CUSTOM_RG_HALF = 2,
      ARRAY_CUSTOM_RGBA_HALF = 3,
      ARRAY_CUSTOM_R_FLOAT = 4,
      ARRAY_CUSTOM_RG_FLOAT = 5,
      ARRAY_CUSTOM_RGB_FLOAT = 6,
      ARRAY_CUSTOM_RGBA_FLOAT = 7,
      ARRAY_CUSTOM_MAX = 8,
    }

    enum ArrayFormat {
      ARRAY_FORMAT_VERTEX = 1,
      ARRAY_FORMAT_NORMAL = 2,
      ARRAY_FORMAT_CUSTOM_BITS = 3,
      ARRAY_FORMAT_TANGENT = 4,
      ARRAY_FORMAT_BLEND_SHAPE_MASK = 7,
      ARRAY_FORMAT_COLOR = 8,
      ARRAY_FORMAT_CUSTOM_BASE = 13,
      ARRAY_FORMAT_TEX_UV = 16,
      ARRAY_FORMAT_CUSTOM2_SHIFT = 19,
      ARRAY_FORMAT_CUSTOM3_SHIFT = 22,
      ARRAY_COMPRESS_FLAGS_BASE = 25,
      ARRAY_FORMAT_TEX_UV2 = 32,
      ARRAY_FORMAT_CUSTOM0 = 64,
      ARRAY_FORMAT_CUSTOM1 = 128,
      ARRAY_FORMAT_CUSTOM2 = 256,
      ARRAY_FORMAT_CUSTOM3 = 512,
      ARRAY_FORMAT_BONES = 1024,
      ARRAY_FORMAT_WEIGHTS = 2048,
      ARRAY_FORMAT_INDEX = 4096,
      ARRAY_FLAG_USE_2D_VERTICES = 33554432,
      ARRAY_FLAG_USE_DYNAMIC_UPDATE = 67108864,
      ARRAY_FLAG_USE_8_BONE_WEIGHTS = 134217728,
      ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY = 268435456,
      ARRAY_FLAG_COMPRESS_ATTRIBUTES = 536870912,
    }

    enum ArrayType {
      ARRAY_VERTEX = 0,
      ARRAY_NORMAL = 1,
      ARRAY_TANGENT = 2,
      ARRAY_COLOR = 3,
      ARRAY_TEX_UV = 4,
      ARRAY_TEX_UV2 = 5,
      ARRAY_CUSTOM0 = 6,
      ARRAY_CUSTOM1 = 7,
      ARRAY_CUSTOM2 = 8,
      ARRAY_CUSTOM3 = 9,
      ARRAY_BONES = 10,
      ARRAY_WEIGHTS = 11,
      ARRAY_INDEX = 12,
      ARRAY_MAX = 13,
    }

    enum BlendShapeMode {
      BLEND_SHAPE_MODE_NORMALIZED = 0,
      BLEND_SHAPE_MODE_RELATIVE = 1,
    }

    enum PrimitiveType {
      PRIMITIVE_POINTS = 0,
      PRIMITIVE_LINES = 1,
      PRIMITIVE_LINE_STRIP = 2,
      PRIMITIVE_TRIANGLES = 3,
      PRIMITIVE_TRIANGLE_STRIP = 4,
    }

    var lightmap_size_hint: Vector2i = Vector2i(0, 0)

    func create_convex_shape(clean: bool = true, simplify: bool = false) -> ConvexPolygonShape3D
    func create_outline(margin: float) -> Mesh
    func create_placeholder() -> Resource
    func create_trimesh_shape() -> ConcavePolygonShape3D
    func generate_triangle_mesh() -> TriangleMesh
    func get_aabb() -> AABB
    func get_faces() -> PackedVector3Array
    func get_surface_count() -> int
    func surface_get_arrays(surf_idx: int) -> Array
    func surface_get_blend_shape_arrays(surf_idx: int) -> Array[Array]
    func surface_get_material(surf_idx: int) -> Material
    func surface_set_material(surf_idx: int, material: Material)

    func _get_aabb() -> AABB
    func _get_blend_shape_count() -> int
    func _get_blend_shape_name(index: int) -> StringName
    func _get_surface_count() -> int
    func _set_blend_shape_name(index: int, name: StringName)
    func _surface_get_array_index_len(index: int) -> int
    func _surface_get_array_len(index: int) -> int
    func _surface_get_arrays(index: int) -> Array
    func _surface_get_blend_shape_arrays(index: int) -> Array[Array]
    func _surface_get_format(index: int) -> int
    func _surface_get_lods(index: int) -> Dictionary
    func _surface_get_material(index: int) -> Material
    func _surface_get_primitive_type(index: int) -> int
    func _surface_set_material(index: int, material: Material)

# Object < RefCounted < Resource < Mesh < ArrayMesh

  class ArrayMesh extends Mesh:

    var blend_shape_mode: enum Mesh.BlendShapeMode = Mesh.BLEND_SHAPE_MODE_RELATIVE
    var custom_aabb: AABB = AABB(Vector3(0, 0, 0), Vector3(0, 0, 0))
    var shadow_mesh: ArrayMesh

    func add_blend_shape(name: StringName)
    func add_surface_from_arrays(primitive: enum Mesh.PrimitiveType, arrays: Array, blend_shapes: Array[Array] = [], lods: Dictionary = {}, flags: enum Mesh.ArrayFormat = 0)
    func clear_blend_shapes()
    func clear_surfaces()
    func get_blend_shape_count() -> int
    func get_blend_shape_name(index: int) -> StringName
    func lightmap_unwrap(transform: Transform3D, texel_size: float) -> enum Error
    func regen_normal_maps()
    func set_blend_shape_name(index: int, name: StringName)
    func surface_find_by_name(name: String) -> int
    func surface_get_array_index_len(surf_idx: int) -> int
    func surface_get_array_len(surf_idx: int) -> int
    func surface_get_format(surf_idx: int) -> enum Mesh.ArrayFormat
    func surface_get_name(surf_idx: int) -> String
    func surface_get_primitive_type(surf_idx: int) -> enum Mesh.PrimitiveType
    func surface_set_name(surf_idx: int, name: String)
    func surface_update_attribute_region(surf_idx: int, offset: int, data: PackedByteArray)
    func surface_update_skin_region(surf_idx: int, offset: int, data: PackedByteArray)
    func surface_update_vertex_region(surf_idx: int, offset: int, data: PackedByteArray)

# Object < RefCounted < Resource < Mesh < ImmediateMesh

  class ImmediateMesh extends Mesh:

    func clear_surfaces()
    func surface_add_vertex(vertex: Vector3)
    func surface_add_vertex_2d(vertex: Vector2)
    func surface_begin(primitive: enum Mesh.PrimitiveType, material: Material = null)
    func surface_end()
    func surface_set_color(color: Color)
    func surface_set_normal(normal: Vector3)
    func surface_set_tangent(tangent: Plane)
    func surface_set_uv(uv: Vector2)
    func surface_set_uv2(uv2: Vector2)

# Object < RefCounted < Resource < Mesh < PlaceholderMesh

  class PlaceholderMesh extends Mesh:

    var aabb: AABB = AABB(Vector3(0, 0, 0), Vector3(0, 0, 0))

# Object < RefCounted < Resource < Mesh < PrimitiveMesh

  class PrimitiveMesh extends Mesh:

    var add_uv2: bool = false
    var custom_aabb: AABB = AABB(Vector3(0, 0, 0), Vector3(0, 0, 0))
    var flip_faces: bool = false
    var material: Material
    var uv2_padding: float = 2.0

    func get_mesh_arrays() -> Array

    func _create_mesh_array() -> Array

# Object < RefCounted < Resource < Mesh < PrimitiveMesh < BoxMesh

  class BoxMesh extends PrimitiveMesh:

    var size: Vector3 = Vector3(1, 1, 1)
    var subdivide_depth: int = 0
    var subdivide_height: int = 0
    var subdivide_width: int = 0

# Object < RefCounted < Resource < Mesh < PrimitiveMesh < CapsuleMesh

  class CapsuleMesh extends PrimitiveMesh:

    var height: float = 2.0
    var radial_segments: int = 64
    var radius: float = 0.5
    var rings: int = 8

# Object < RefCounted < Resource < Mesh < PrimitiveMesh < CylinderMesh

  class CylinderMesh extends PrimitiveMesh:

    var bottom_radius: float = 0.5
    var cap_bottom: bool = true
    var cap_top: bool = true
    var height: float = 2.0
    var radial_segments: int = 64
    var rings: int = 4
    var top_radius: float = 0.5

# Object < RefCounted < Resource < Mesh < PrimitiveMesh < PlaneMesh

  class PlaneMesh extends PrimitiveMesh:

    enum Orientation {
      FACE_X = 0,
      FACE_Y = 1,
      FACE_Z = 2,
    }

    var center_offset: Vector3 = Vector3(0, 0, 0)
    var orientation: enum Orientation = FACE_Y
    var size: Vector2 = Vector2(2, 2)
    var subdivide_depth: int = 0
    var subdivide_width: int = 0

# Object < RefCounted < Resource < Mesh < PrimitiveMesh < PlaneMesh < QuadMesh

  class QuadMesh extends PlaneMesh:

    pass 

# Object < RefCounted < Resource < Mesh < PrimitiveMesh < PointMesh

  class PointMesh extends PrimitiveMesh:

    pass 

# Object < RefCounted < Resource < Mesh < PrimitiveMesh < PrismMesh

  class PrismMesh extends PrimitiveMesh:

    var left_to_right: float = 0.5
    var size: Vector3 = Vector3(1, 1, 1)
    var subdivide_depth: int = 0
    var subdivide_height: int = 0
    var subdivide_width: int = 0

# Object < RefCounted < Resource < Mesh < PrimitiveMesh < RibbonTrailMesh

  class RibbonTrailMesh extends PrimitiveMesh:

    enum Shape {
      SHAPE_FLAT = 0,
      SHAPE_CROSS = 1,
    }

    var curve: Curve
    var section_length: float = 0.2
    var section_segments: int = 3
    var sections: int = 5
    var shape: enum Shape = SHAPE_CROSS
    var size: float = 1.0

# Object < RefCounted < Resource < Mesh < PrimitiveMesh < SphereMesh

  class SphereMesh extends PrimitiveMesh:

    var height: float = 1.0
    var is_hemisphere: bool = false
    var radial_segments: int = 64
    var radius: float = 0.5
    var rings: int = 32

# Object < RefCounted < Resource < Mesh < PrimitiveMesh < TextMesh

  class TextMesh extends PrimitiveMesh:

    var autowrap_mode: enum TextServer.AutowrapMode = TextServer.AUTOWRAP_OFF
    var curve_step: float = 0.5
    var depth: float = 0.05
    var font: Font
    var font_size: int = 16
    var horizontal_alignment: enum HorizontalAlignment = HORIZONTAL_ALIGNMENT_CENTER
    var justification_flags: enum TextServer.JustificationFlag = TextServer.JUSTIFICATION_KASHIDA & TextServer.JUSTIFICATION_WORD_BOUND & TextServer.JUSTIFICATION_SKIP_LAST_LINE & TextServer.JUSTIFICATION_DO_NOT_SKIP_SINGLE_LINE
    var language: String = ""
    var line_spacing: float = 0.0
    var offset: Vector2 = Vector2(0, 0)
    var pixel_size: float = 0.01
    var structured_text_bidi_override: enum TextServer.StructuredTextParser = TextServer.STRUCTURED_TEXT_DEFAULT
    var structured_text_bidi_override_options: Array = []
    var text: String = ""
    var text_direction: enum TextServer.Direction = TextServer.DIRECTION_AUTO
    var uppercase: bool = false
    var vertical_alignment: enum VerticalAlignment = VERTICAL_ALIGNMENT_CENTER
    var width: float = 500.0

# Object < RefCounted < Resource < Mesh < PrimitiveMesh < TorusMesh

  class TorusMesh extends PrimitiveMesh:

    var inner_radius: float = 0.5
    var outer_radius: float = 1.0
    var ring_segments: int = 32
    var rings: int = 64

# Object < RefCounted < Resource < Mesh < PrimitiveMesh < TubeTrailMesh

  class TubeTrailMesh extends PrimitiveMesh:

    var cap_bottom: bool = true
    var cap_top: bool = true
    var curve: Curve
    var radial_steps: int = 8
    var radius: float = 0.5
    var section_length: float = 0.2
    var section_rings: int = 3
    var sections: int = 5

# Object < RefCounted < Resource < MeshLibrary

  class MeshLibrary extends Resource:

    func clear()
    func create_item(id: int)
    func find_item_by_name(name: String) -> int
    func get_item_list() -> PackedInt32Array
    func get_item_mesh(id: int) -> Mesh
    func get_item_mesh_transform(id: int) -> Transform3D
    func get_item_name(id: int) -> String
    func get_item_navigation_layers(id: int) -> int
    func get_item_navigation_mesh(id: int) -> NavigationMesh
    func get_item_navigation_mesh_transform(id: int) -> Transform3D
    func get_item_preview(id: int) -> Texture2D
    func get_item_shapes(id: int) -> Array
    func get_last_unused_item_id() -> int
    func remove_item(id: int)
    func set_item_mesh(id: int, mesh: Mesh)
    func set_item_mesh_transform(id: int, mesh_transform: Transform3D)
    func set_item_name(id: int, name: String)
    func set_item_navigation_layers(id: int, navigation_layers: int)
    func set_item_navigation_mesh(id: int, navigation_mesh: NavigationMesh)
    func set_item_navigation_mesh_transform(id: int, navigation_mesh: Transform3D)
    func set_item_preview(id: int, texture: Texture2D)
    func set_item_shapes(id: int, shapes: Array)

# Object < RefCounted < Resource < MissingResource

  class MissingResource extends Resource:

    var original_class: String
    var recording_properties: bool

# Object < RefCounted < Resource < MultiMesh

  class MultiMesh extends Resource:

    enum TransformFormat {
      TRANSFORM_2D = 0,
      TRANSFORM_3D = 1,
    }

    var buffer: PackedFloat32Array = PackedFloat32Array()
    var color_array: PackedColorArray
    var custom_data_array: PackedColorArray
    var instance_count: int = 0
    var mesh: Mesh
    var transform_2d_array: PackedVector2Array
    var transform_array: PackedVector3Array
    var transform_format: enum TransformFormat = TRANSFORM_2D
    var use_colors: bool = false
    var use_custom_data: bool = false
    var visible_instance_count: int = -1

    func get_aabb() -> AABB
    func get_instance_color(instance: int) -> Color
    func get_instance_custom_data(instance: int) -> Color
    func get_instance_transform(instance: int) -> Transform3D
    func get_instance_transform_2d(instance: int) -> Transform2D
    func set_instance_color(instance: int, color: Color)
    func set_instance_custom_data(instance: int, custom_data: Color)
    func set_instance_transform(instance: int, transform: Transform3D)
    func set_instance_transform_2d(instance: int, transform: Transform2D)

# Object < RefCounted < Resource < NavigationMesh

  class NavigationMesh extends Resource:

    enum ParsedGeometryType {
      PARSED_GEOMETRY_MESH_INSTANCES = 0,
      PARSED_GEOMETRY_STATIC_COLLIDERS = 1,
      PARSED_GEOMETRY_BOTH = 2,
      PARSED_GEOMETRY_MAX = 3,
    }

    enum SamplePartitionType {
      SAMPLE_PARTITION_WATERSHED = 0,
      SAMPLE_PARTITION_MONOTONE = 1,
      SAMPLE_PARTITION_LAYERS = 2,
      SAMPLE_PARTITION_MAX = 3,
    }

    enum SourceGeometryMode {
      SOURCE_GEOMETRY_ROOT_NODE_CHILDREN = 0,
      SOURCE_GEOMETRY_GROUPS_WITH_CHILDREN = 1,
      SOURCE_GEOMETRY_GROUPS_EXPLICIT = 2,
      SOURCE_GEOMETRY_MAX = 3,
    }

    var agent_height: float = 1.5
    var agent_max_climb: float = 0.25
    var agent_max_slope: float = 45.0
    var agent_radius: float = 0.5
    var cell_height: float = 0.25
    var cell_size: float = 0.25
    var detail_sample_distance: float = 6.0
    var detail_sample_max_error: float = 1.0
    var edge_max_error: float = 1.3
    var edge_max_length: float = 0.0
    var filter_baking_aabb: AABB = AABB(Vector3(0, 0, 0), Vector3(0, 0, 0))
    var filter_baking_aabb_offset: Vector3 = Vector3(0, 0, 0)
    var filter_ledge_spans: bool = false
    var filter_low_hanging_obstacles: bool = false
    var filter_walkable_low_height_spans: bool = false
    var geometry_collision_mask: int = 4294967295
    var geometry_parsed_geometry_type: enum ParsedGeometryType = PARSED_GEOMETRY_MESH_INSTANCES
    var geometry_source_geometry_mode: enum SourceGeometryMode = SOURCE_GEOMETRY_ROOT_NODE_CHILDREN
    var geometry_source_group_name: StringName = "navigation_mesh_source_group"
    var region_merge_size: float = 20.0
    var region_min_size: float = 2.0
    var sample_partition_type: enum SamplePartitionType = SAMPLE_PARTITION_WATERSHED
    var vertices_per_polygon: float = 6.0

    func add_polygon(polygon: PackedInt32Array)
    func clear()
    func clear_polygons()
    func create_from_mesh(mesh: Mesh)
    func get_collision_mask_value(layer_number: int) -> bool
    func get_polygon(idx: int) -> PackedInt32Array
    func get_polygon_count() -> int
    func get_vertices() -> PackedVector3Array
    func set_collision_mask_value(layer_number: int, value: bool)
    func set_vertices(vertices: PackedVector3Array)

# Object < RefCounted < Resource < NavigationMeshSourceGeometryData2D

  class NavigationMeshSourceGeometryData2D extends Resource:

    func add_obstruction_outline(shape_outline: PackedVector2Array)
    func add_traversable_outline(shape_outline: PackedVector2Array)
    func clear()
    func get_obstruction_outlines() -> Array[PackedVector2Array]
    func get_traversable_outlines() -> Array[PackedVector2Array]
    func has_data() -> bool
    func set_obstruction_outlines(obstruction_outlines: Array[PackedVector2Array])
    func set_traversable_outlines(traversable_outlines: Array[PackedVector2Array])

# Object < RefCounted < Resource < NavigationMeshSourceGeometryData3D

  class NavigationMeshSourceGeometryData3D extends Resource:

    func add_faces(faces: PackedVector3Array, xform: Transform3D)
    func add_mesh(mesh: Mesh, xform: Transform3D)
    func add_mesh_array(mesh_array: Array, xform: Transform3D)
    func clear()
    func get_indices() -> PackedInt32Array
    func get_vertices() -> PackedFloat32Array
    func has_data() -> bool
    func set_indices(indices: PackedInt32Array)
    func set_vertices(vertices: PackedFloat32Array)

# Object < RefCounted < Resource < NavigationPolygon

  class NavigationPolygon extends Resource:

    enum ParsedGeometryType {
      PARSED_GEOMETRY_MESH_INSTANCES = 0,
      PARSED_GEOMETRY_STATIC_COLLIDERS = 1,
      PARSED_GEOMETRY_BOTH = 2,
      PARSED_GEOMETRY_MAX = 3,
    }

    enum SourceGeometryMode {
      SOURCE_GEOMETRY_ROOT_NODE_CHILDREN = 0,
      SOURCE_GEOMETRY_GROUPS_WITH_CHILDREN = 1,
      SOURCE_GEOMETRY_GROUPS_EXPLICIT = 2,
      SOURCE_GEOMETRY_MAX = 3,
    }

    var agent_radius: float = 10.0
    var cell_size: float = 1.0
    var parsed_collision_mask: int = 4294967295
    var parsed_geometry_type: enum ParsedGeometryType = PARSED_GEOMETRY_BOTH
    var source_geometry_group_name: StringName = "navigation_polygon_source_geometry_group"
    var source_geometry_mode: enum SourceGeometryMode = SOURCE_GEOMETRY_ROOT_NODE_CHILDREN

    func add_outline(outline: PackedVector2Array)
    func add_outline_at_index(outline: PackedVector2Array, index: int)
    func add_polygon(polygon: PackedInt32Array)
    func clear()
    func clear_outlines()
    func clear_polygons()
    func get_navigation_mesh() -> NavigationMesh
    func get_outline(idx: int) -> PackedVector2Array
    func get_outline_count() -> int
    func get_parsed_collision_mask_value(layer_number: int) -> bool
    func get_polygon(idx: int) -> PackedInt32Array
    func get_polygon_count() -> int
    func get_vertices() -> PackedVector2Array
    func make_polygons_from_outlines()
    func remove_outline(idx: int)
    func set_outline(idx: int, outline: PackedVector2Array)
    func set_parsed_collision_mask_value(layer_number: int, value: bool)
    func set_vertices(vertices: PackedVector2Array)

# Object < RefCounted < Resource < Occluder3D (abstract)

  class Occluder3D extends Resource:

    func get_indices() -> PackedInt32Array
    func get_vertices() -> PackedVector3Array

# Object < RefCounted < Resource < Occluder3D < ArrayOccluder3D

  class ArrayOccluder3D extends Occluder3D:

    var indices: PackedInt32Array = PackedInt32Array()
    var vertices: PackedVector3Array = PackedVector3Array()

    func set_arrays(vertices: PackedVector3Array, indices: PackedInt32Array)

# Object < RefCounted < Resource < Occluder3D < BoxOccluder3D

  class BoxOccluder3D extends Occluder3D:

    var size: Vector3 = Vector3(1, 1, 1)

# Object < RefCounted < Resource < Occluder3D < PolygonOccluder3D

  class PolygonOccluder3D extends Occluder3D:

    var polygon: PackedVector2Array = PackedVector2Array()

# Object < RefCounted < Resource < Occluder3D < QuadOccluder3D

  class QuadOccluder3D extends Occluder3D:

    var size: Vector2 = Vector2(1, 1)

# Object < RefCounted < Resource < Occluder3D < SphereOccluder3D

  class SphereOccluder3D extends Occluder3D:

    var radius: float = 1.0

# Object < RefCounted < Resource < OccluderPolygon2D

  class OccluderPolygon2D extends Resource:

    enum CullMode {
      CULL_DISABLED = 0,
      CULL_CLOCKWISE = 1,
      CULL_COUNTER_CLOCKWISE = 2,
    }

    var closed: bool = true
    var cull_mode: enum CullMode = CULL_DISABLED
    var polygon: PackedVector2Array = PackedVector2Array()

# Object < RefCounted < Resource < PackedDataContainer

  class PackedDataContainer extends Resource:

    func pack(value: Variant) -> enum Error
    func size() -> int

# Object < RefCounted < Resource < PackedScene

  class PackedScene extends Resource:

    enum GenEditState {
      GEN_EDIT_STATE_DISABLED = 0,
      GEN_EDIT_STATE_INSTANCE = 1,
      GEN_EDIT_STATE_MAIN = 2,
      GEN_EDIT_STATE_MAIN_INHERITED = 3,
    }

    var _bundled: Dictionary = {"conn_count", 0, "conns", PackedInt32Array(), "editable_instances", [], "names", PackedStringArray(), "node_count", 0, "node_paths", [], "nodes", PackedInt32Array(), "variants", [], "version", 3}

    func can_instantiate() -> bool
    func get_state() -> SceneState
    func instantiate(edit_state: enum GenEditState = GEN_EDIT_STATE_DISABLED) -> Node
    func pack(path: Node) -> enum Error

# Object < RefCounted < Resource < PhysicsMaterial

  class PhysicsMaterial extends Resource:

    var absorbent: bool = false
    var bounce: float = 0.0
    var friction: float = 1.0
    var rough: bool = false

# Object < RefCounted < Resource < PolygonPathFinder

  class PolygonPathFinder extends Resource:

    func find_path(from: Vector2, to: Vector2) -> PackedVector2Array
    func get_bounds() -> Rect2
    func get_closest_point(point: Vector2) -> Vector2
    func get_intersections(from: Vector2, to: Vector2) -> PackedVector2Array
    func get_point_penalty(idx: int) -> float
    func is_point_inside(point: Vector2) -> bool
    func set_point_penalty(idx: int, penalty: float)
    func setup(points: PackedVector2Array, connections: PackedInt32Array)

# Object < RefCounted < Resource < RDShaderFile

  class RDShaderFile extends Resource:

    var base_error: String = ""

    func get_spirv(version: StringName = "") -> RDShaderSPIRV
    func get_version_list() -> Array[StringName]
    func set_bytecode(bytecode: RDShaderSPIRV, version: StringName = "")

# Object < RefCounted < Resource < RDShaderSPIRV

  class RDShaderSPIRV extends Resource:

    var bytecode_compute: PackedByteArray = PackedByteArray()
    var bytecode_fragment: PackedByteArray = PackedByteArray()
    var bytecode_tesselation_control: PackedByteArray = PackedByteArray()
    var bytecode_tesselation_evaluation: PackedByteArray = PackedByteArray()
    var bytecode_vertex: PackedByteArray = PackedByteArray()
    var compile_error_compute: String = ""
    var compile_error_fragment: String = ""
    var compile_error_tesselation_control: String = ""
    var compile_error_tesselation_evaluation: String = ""
    var compile_error_vertex: String = ""

    func get_stage_bytecode(stage: enum RenderingDevice.ShaderStage) -> PackedByteArray
    func get_stage_compile_error(stage: enum RenderingDevice.ShaderStage) -> String
    func set_stage_bytecode(stage: enum RenderingDevice.ShaderStage, bytecode: PackedByteArray)
    func set_stage_compile_error(stage: enum RenderingDevice.ShaderStage, compile_error: String)

# Object < RefCounted < Resource < RichTextEffect

  class RichTextEffect extends Resource:

    func _process_custom_fx(char_fx: CharFXTransform) -> bool

# Object < RefCounted < Resource < Script (abstract)

  class Script extends Resource:

    var source_code: String

    func can_instantiate() -> bool
    func get_base_script() -> Script
    func get_instance_base_type() -> StringName
    func get_property_default_value(property: StringName) -> Variant
    func get_script_constant_map() -> Dictionary
    func get_script_method_list() -> Array[Dictionary]
    func get_script_property_list() -> Array[Dictionary]
    func get_script_signal_list() -> Array[Dictionary]
    func has_script_signal(signal_name: StringName) -> bool
    func has_source_code() -> bool
    func instance_has(base_object: Object) -> bool
    func is_abstract() -> bool
    func is_tool() -> bool
    func reload(keep_state: bool = false) -> enum Error

# Object < RefCounted < Resource < Shader

  class Shader extends Resource:

    enum Mode {
      MODE_SPATIAL = 0,
      MODE_CANVAS_ITEM = 1,
      MODE_PARTICLES = 2,
      MODE_SKY = 3,
      MODE_FOG = 4,
    }

    var code: String = ""

    func get_default_texture_parameter(name: StringName, index: int = 0) -> Texture2D
    func get_mode() -> enum Mode
    func get_shader_uniform_list(get_groups: bool = false) -> Array
    func set_default_texture_parameter(name: StringName, texture: Texture2D, index: int = 0)

# Object < RefCounted < Resource < Shader < VisualShader

  class VisualShader extends Shader:

    const NODE_ID_INVALID = -1
    const NODE_ID_OUTPUT = 0

    enum Type {
      TYPE_VERTEX = 0,
      TYPE_FRAGMENT = 1,
      TYPE_LIGHT = 2,
      TYPE_START = 3,
      TYPE_PROCESS = 4,
      TYPE_COLLIDE = 5,
      TYPE_START_CUSTOM = 6,
      TYPE_PROCESS_CUSTOM = 7,
      TYPE_SKY = 8,
      TYPE_FOG = 9,
      TYPE_MAX = 10,
    }

    enum VaryingMode {
      VARYING_MODE_VERTEX_TO_FRAG_LIGHT = 0,
      VARYING_MODE_FRAG_TO_LIGHT = 1,
      VARYING_MODE_MAX = 2,
    }

    enum VaryingType {
      VARYING_TYPE_FLOAT = 0,
      VARYING_TYPE_INT = 1,
      VARYING_TYPE_UINT = 2,
      VARYING_TYPE_VECTOR_2D = 3,
      VARYING_TYPE_VECTOR_3D = 4,
      VARYING_TYPE_VECTOR_4D = 5,
      VARYING_TYPE_BOOLEAN = 6,
      VARYING_TYPE_TRANSFORM = 7,
      VARYING_TYPE_MAX = 8,
    }

    var graph_offset: Vector2 = Vector2(0, 0)

    func add_node(type: enum Type, node: VisualShaderNode, position: Vector2, id: int)
    func add_varying(name: String, mode: enum VaryingMode, type: enum VaryingType)
    func can_connect_nodes(type: enum Type, from_node: int, from_port: int, to_node: int, to_port: int) -> bool
    func connect_nodes(type: enum Type, from_node: int, from_port: int, to_node: int, to_port: int) -> enum Error
    func connect_nodes_forced(type: enum Type, from_node: int, from_port: int, to_node: int, to_port: int)
    func disconnect_nodes(type: enum Type, from_node: int, from_port: int, to_node: int, to_port: int)
    func get_node(type: enum Type, id: int) -> VisualShaderNode
    func get_node_connections(type: enum Type) -> Array[Dictionary]
    func get_node_list(type: enum Type) -> PackedInt32Array
    func get_node_position(type: enum Type, id: int) -> Vector2
    func get_valid_node_id(type: enum Type) -> int
    func has_varying(name: String) -> bool
    func is_node_connection(type: enum Type, from_node: int, from_port: int, to_node: int, to_port: int) -> bool
    func remove_node(type: enum Type, id: int)
    func remove_varying(name: String)
    func replace_node(type: enum Type, id: int, new_class: StringName)
    func set_mode(mode: enum Shader.Mode)
    func set_node_position(type: enum Type, id: int, position: Vector2)

# Object < RefCounted < Resource < ShaderInclude

  class ShaderInclude extends Resource:

    var code: String = ""

# Object < RefCounted < Resource < Shape2D (abstract)

  class Shape2D extends Resource:

    var custom_solver_bias: float = 0.0

    func collide(local_xform: Transform2D, with_shape: Shape2D, shape_xform: Transform2D) -> bool
    func collide_and_get_contacts(local_xform: Transform2D, with_shape: Shape2D, shape_xform: Transform2D) -> PackedVector2Array
    func collide_with_motion(local_xform: Transform2D, local_motion: Vector2, with_shape: Shape2D, shape_xform: Transform2D, shape_motion: Vector2) -> bool
    func collide_with_motion_and_get_contacts(local_xform: Transform2D, local_motion: Vector2, with_shape: Shape2D, shape_xform: Transform2D, shape_motion: Vector2) -> PackedVector2Array
    func draw(canvas_item: RID, color: Color)
    func get_rect() -> Rect2

# Object < RefCounted < Resource < Shape2D < CapsuleShape2D

  class CapsuleShape2D extends Shape2D:

    var height: float = 30.0
    var radius: float = 10.0

# Object < RefCounted < Resource < Shape2D < CircleShape2D

  class CircleShape2D extends Shape2D:

    var radius: float = 10.0

# Object < RefCounted < Resource < Shape2D < ConcavePolygonShape2D

  class ConcavePolygonShape2D extends Shape2D:

    var segments: PackedVector2Array = PackedVector2Array()

# Object < RefCounted < Resource < Shape2D < ConvexPolygonShape2D

  class ConvexPolygonShape2D extends Shape2D:

    var points: PackedVector2Array = PackedVector2Array()

    func set_point_cloud(point_cloud: PackedVector2Array)

# Object < RefCounted < Resource < Shape2D < RectangleShape2D

  class RectangleShape2D extends Shape2D:

    var size: Vector2 = Vector2(20, 20)

# Object < RefCounted < Resource < Shape2D < SegmentShape2D

  class SegmentShape2D extends Shape2D:

    var a: Vector2 = Vector2(0, 0)
    var b: Vector2 = Vector2(0, 10)

# Object < RefCounted < Resource < Shape2D < SeparationRayShape2D

  class SeparationRayShape2D extends Shape2D:

    var length: float = 20.0
    var slide_on_slope: bool = false

# Object < RefCounted < Resource < Shape2D < WorldBoundaryShape2D

  class WorldBoundaryShape2D extends Shape2D:

    var distance: float = 0.0
    var normal: Vector2 = Vector2(0, -1)

# Object < RefCounted < Resource < Shape3D (abstract)

  class Shape3D extends Resource:

    var custom_solver_bias: float = 0.0
    var margin: float = 0.04

    func get_debug_mesh() -> ArrayMesh

# Object < RefCounted < Resource < Shape3D < BoxShape3D

  class BoxShape3D extends Shape3D:

    var size: Vector3 = Vector3(1, 1, 1)

# Object < RefCounted < Resource < Shape3D < CapsuleShape3D

  class CapsuleShape3D extends Shape3D:

    var height: float = 2.0
    var radius: float = 0.5

# Object < RefCounted < Resource < Shape3D < ConcavePolygonShape3D

  class ConcavePolygonShape3D extends Shape3D:

    var backface_collision: bool = false

    func get_faces() -> PackedVector3Array
    func set_faces(faces: PackedVector3Array)

# Object < RefCounted < Resource < Shape3D < ConvexPolygonShape3D

  class ConvexPolygonShape3D extends Shape3D:

    var points: PackedVector3Array = PackedVector3Array()

# Object < RefCounted < Resource < Shape3D < CylinderShape3D

  class CylinderShape3D extends Shape3D:

    var height: float = 2.0
    var radius: float = 0.5

# Object < RefCounted < Resource < Shape3D < HeightMapShape3D

  class HeightMapShape3D extends Shape3D:

    var map_data: PackedFloat32Array = PackedFloat32Array(0, 0, 0, 0)
    var map_depth: int = 2
    var map_width: int = 2

# Object < RefCounted < Resource < Shape3D < SeparationRayShape3D

  class SeparationRayShape3D extends Shape3D:

    var length: float = 1.0
    var slide_on_slope: bool = false

# Object < RefCounted < Resource < Shape3D < SphereShape3D

  class SphereShape3D extends Shape3D:

    var radius: float = 0.5

# Object < RefCounted < Resource < Shape3D < WorldBoundaryShape3D

  class WorldBoundaryShape3D extends Shape3D:

    var plane: Plane = Plane(0, 1, 0, 0)

# Object < RefCounted < Resource < Shortcut

  class Shortcut extends Resource:

    var events: Array = []

    func get_as_text() -> String
    func has_valid_event() -> bool
    func matches_event(event: InputEvent) -> bool

# Object < RefCounted < Resource < SkeletonModification2D

  class SkeletonModification2D extends Resource:

    var enabled: bool = true
    var execution_mode: int = 0

    func clamp_angle(angle: float, min: float, max: float, invert: bool) -> float
    func get_editor_draw_gizmo() -> bool
    func get_is_setup() -> bool
    func get_modification_stack() -> SkeletonModificationStack2D
    func set_editor_draw_gizmo(draw_gizmo: bool)
    func set_is_setup(is_setup: bool)

    func _draw_editor_gizmo()
    func _execute(delta: float)
    func _setup_modification(modification_stack: SkeletonModificationStack2D)

# Object < RefCounted < Resource < SkeletonModification2D < SkeletonModification2DCCDIK

  class SkeletonModification2DCCDIK extends SkeletonModification2D:

    var ccdik_data_chain_length: int = 0
    var target_nodepath: NodePath = NodePath("")
    var tip_nodepath: NodePath = NodePath("")

    func get_ccdik_joint_bone_index(joint_idx: int) -> int
    func get_ccdik_joint_bone2d_node(joint_idx: int) -> NodePath
    func get_ccdik_joint_constraint_angle_invert(joint_idx: int) -> bool
    func get_ccdik_joint_constraint_angle_max(joint_idx: int) -> float
    func get_ccdik_joint_constraint_angle_min(joint_idx: int) -> float
    func get_ccdik_joint_enable_constraint(joint_idx: int) -> bool
    func get_ccdik_joint_rotate_from_joint(joint_idx: int) -> bool
    func set_ccdik_joint_bone_index(joint_idx: int, bone_idx: int)
    func set_ccdik_joint_bone2d_node(joint_idx: int, bone2d_nodepath: NodePath)
    func set_ccdik_joint_constraint_angle_invert(joint_idx: int, invert: bool)
    func set_ccdik_joint_constraint_angle_max(joint_idx: int, angle_max: float)
    func set_ccdik_joint_constraint_angle_min(joint_idx: int, angle_min: float)
    func set_ccdik_joint_enable_constraint(joint_idx: int, enable_constraint: bool)
    func set_ccdik_joint_rotate_from_joint(joint_idx: int, rotate_from_joint: bool)

# Object < RefCounted < Resource < SkeletonModification2D < SkeletonModification2DFABRIK

  class SkeletonModification2DFABRIK extends SkeletonModification2D:

    var fabrik_data_chain_length: int = 0
    var target_nodepath: NodePath = NodePath("")

    func get_fabrik_joint_bone_index(joint_idx: int) -> int
    func get_fabrik_joint_bone2d_node(joint_idx: int) -> NodePath
    func get_fabrik_joint_magnet_position(joint_idx: int) -> Vector2
    func get_fabrik_joint_use_target_rotation(joint_idx: int) -> bool
    func set_fabrik_joint_bone_index(joint_idx: int, bone_idx: int)
    func set_fabrik_joint_bone2d_node(joint_idx: int, bone2d_nodepath: NodePath)
    func set_fabrik_joint_magnet_position(joint_idx: int, magnet_position: Vector2)
    func set_fabrik_joint_use_target_rotation(joint_idx: int, use_target_rotation: bool)

# Object < RefCounted < Resource < SkeletonModification2D < SkeletonModification2DJiggle

  class SkeletonModification2DJiggle extends SkeletonModification2D:

    var damping: float = 0.75
    var gravity: Vector2 = Vector2(0, 6)
    var jiggle_data_chain_length: int = 0
    var mass: float = 0.75
    var stiffness: float = 3.0
    var target_nodepath: NodePath = NodePath("")
    var use_gravity: bool = false

    func get_collision_mask() -> int
    func get_jiggle_joint_bone_index(joint_idx: int) -> int
    func get_jiggle_joint_bone2d_node(joint_idx: int) -> NodePath
    func get_jiggle_joint_damping(joint_idx: int) -> float
    func get_jiggle_joint_gravity(joint_idx: int) -> Vector2
    func get_jiggle_joint_mass(joint_idx: int) -> float
    func get_jiggle_joint_override(joint_idx: int) -> bool
    func get_jiggle_joint_stiffness(joint_idx: int) -> float
    func get_jiggle_joint_use_gravity(joint_idx: int) -> bool
    func get_use_colliders() -> bool
    func set_collision_mask(collision_mask: int)
    func set_jiggle_joint_bone_index(joint_idx: int, bone_idx: int)
    func set_jiggle_joint_bone2d_node(joint_idx: int, bone2d_node: NodePath)
    func set_jiggle_joint_damping(joint_idx: int, damping: float)
    func set_jiggle_joint_gravity(joint_idx: int, gravity: Vector2)
    func set_jiggle_joint_mass(joint_idx: int, mass: float)
    func set_jiggle_joint_override(joint_idx: int, override: bool)
    func set_jiggle_joint_stiffness(joint_idx: int, stiffness: float)
    func set_jiggle_joint_use_gravity(joint_idx: int, use_gravity: bool)
    func set_use_colliders(use_colliders: bool)

# Object < RefCounted < Resource < SkeletonModification2D < SkeletonModification2DLookAt

  class SkeletonModification2DLookAt extends SkeletonModification2D:

    var bone_index: int = -1
    var bone2d_node: NodePath = NodePath("")
    var target_nodepath: NodePath = NodePath("")

    func get_additional_rotation() -> float
    func get_constraint_angle_invert() -> bool
    func get_constraint_angle_max() -> float
    func get_constraint_angle_min() -> float
    func get_enable_constraint() -> bool
    func set_additional_rotation(rotation: float)
    func set_constraint_angle_invert(invert: bool)
    func set_constraint_angle_max(angle_max: float)
    func set_constraint_angle_min(angle_min: float)
    func set_enable_constraint(enable_constraint: bool)

# Object < RefCounted < Resource < SkeletonModification2D < SkeletonModification2DPhysicalBones

  class SkeletonModification2DPhysicalBones extends SkeletonModification2D:

    var physical_bone_chain_length: int = 0

    func fetch_physical_bones()
    func get_physical_bone_node(joint_idx: int) -> NodePath
    func set_physical_bone_node(joint_idx: int, physicalbone2d_node: NodePath)
    func start_simulation(bones: Array[StringName] = [])
    func stop_simulation(bones: Array[StringName] = [])

# Object < RefCounted < Resource < SkeletonModification2D < SkeletonModification2DStackHolder

  class SkeletonModification2DStackHolder extends SkeletonModification2D:

    func get_held_modification_stack() -> SkeletonModificationStack2D
    func set_held_modification_stack(held_modification_stack: SkeletonModificationStack2D)

# Object < RefCounted < Resource < SkeletonModification2D < SkeletonModification2DTwoBoneIK

  class SkeletonModification2DTwoBoneIK extends SkeletonModification2D:

    var flip_bend_direction: bool = false
    var target_maximum_distance: float = 0.0
    var target_minimum_distance: float = 0.0
    var target_nodepath: NodePath = NodePath("")

    func get_joint_one_bone_idx() -> int
    func get_joint_one_bone2d_node() -> NodePath
    func get_joint_two_bone_idx() -> int
    func get_joint_two_bone2d_node() -> NodePath
    func set_joint_one_bone_idx(bone_idx: int)
    func set_joint_one_bone2d_node(bone2d_node: NodePath)
    func set_joint_two_bone_idx(bone_idx: int)
    func set_joint_two_bone2d_node(bone2d_node: NodePath)

# Object < RefCounted < Resource < SkeletonModificationStack2D

  class SkeletonModificationStack2D extends Resource:

    var enabled: bool = false
    var modification_count: int = 0
    var strength: float = 1.0

    func add_modification(modification: SkeletonModification2D)
    func delete_modification(mod_idx: int)
    func enable_all_modifications(enabled: bool)
    func execute(delta: float, execution_mode: int)
    func get_is_setup() -> bool
    func get_modification(mod_idx: int) -> SkeletonModification2D
    func get_skeleton() -> Skeleton2D
    func set_modification(mod_idx: int, modification: SkeletonModification2D)
    func setup()

# Object < RefCounted < Resource < SkeletonProfile

  class SkeletonProfile extends Resource:

    enum TailDirection {
      TAIL_DIRECTION_AVERAGE_CHILDREN = 0,
      TAIL_DIRECTION_SPECIFIC_CHILD = 1,
      TAIL_DIRECTION_END = 2,
    }

    var bone_size: int = 0
    var group_size: int = 0
    var root_bone: StringName = ""
    var scale_base_bone: StringName = ""

    signal profile_updated()

    func find_bone(bone_name: StringName) -> int
    func get_bone_name(bone_idx: int) -> StringName
    func get_bone_parent(bone_idx: int) -> StringName
    func get_bone_tail(bone_idx: int) -> StringName
    func get_group(bone_idx: int) -> StringName
    func get_group_name(group_idx: int) -> StringName
    func get_handle_offset(bone_idx: int) -> Vector2
    func get_reference_pose(bone_idx: int) -> Transform3D
    func get_tail_direction(bone_idx: int) -> enum TailDirection
    func get_texture(group_idx: int) -> Texture2D
    func set_bone_name(bone_idx: int, bone_name: StringName)
    func set_bone_parent(bone_idx: int, bone_parent: StringName)
    func set_bone_tail(bone_idx: int, bone_tail: StringName)
    func set_group(bone_idx: int, group: StringName)
    func set_group_name(group_idx: int, group_name: StringName)
    func set_handle_offset(bone_idx: int, handle_offset: Vector2)
    func set_reference_pose(bone_idx: int, bone_name: Transform3D)
    func set_tail_direction(bone_idx: int, tail_direction: enum TailDirection)
    func set_texture(group_idx: int, texture: Texture2D)

# Object < RefCounted < Resource < SkeletonProfile < SkeletonProfileHumanoid

  class SkeletonProfileHumanoid extends SkeletonProfile:

    pass 

# Object < RefCounted < Resource < Skin

  class Skin extends Resource:

    func add_bind(bone: int, pose: Transform3D)
    func add_named_bind(name: String, pose: Transform3D)
    func clear_binds()
    func get_bind_bone(bind_index: int) -> int
    func get_bind_count() -> int
    func get_bind_name(bind_index: int) -> StringName
    func get_bind_pose(bind_index: int) -> Transform3D
    func set_bind_bone(bind_index: int, bone: int)
    func set_bind_count(bind_count: int)
    func set_bind_name(bind_index: int, name: StringName)
    func set_bind_pose(bind_index: int, pose: Transform3D)

# Object < RefCounted < Resource < Sky

  class Sky extends Resource:

    enum ProcessMode {
      PROCESS_MODE_AUTOMATIC = 0,
      PROCESS_MODE_QUALITY = 1,
      PROCESS_MODE_INCREMENTAL = 2,
      PROCESS_MODE_REALTIME = 3,
    }

    enum RadianceSize {
      RADIANCE_SIZE_32 = 0,
      RADIANCE_SIZE_64 = 1,
      RADIANCE_SIZE_128 = 2,
      RADIANCE_SIZE_256 = 3,
      RADIANCE_SIZE_512 = 4,
      RADIANCE_SIZE_1024 = 5,
      RADIANCE_SIZE_2048 = 6,
      RADIANCE_SIZE_MAX = 7,
    }

    var process_mode: enum ProcessMode = PROCESS_MODE_AUTOMATIC
    var radiance_size: enum RadianceSize = RADIANCE_SIZE_256
    var sky_material: Material

# Object < RefCounted < Resource < SpriteFrames

  class SpriteFrames extends Resource:

    func add_animation(anim: StringName)
    func add_frame(anim: StringName, texture: Texture2D, duration: float = 1.0, at_position: int = -1)
    func clear(anim: StringName)
    func clear_all()
    func get_animation_loop(anim: StringName) -> bool
    func get_animation_names() -> PackedStringArray
    func get_animation_speed(anim: StringName) -> float
    func get_frame_count(anim: StringName) -> int
    func get_frame_duration(anim: StringName, idx: int) -> float
    func get_frame_texture(anim: StringName, idx: int) -> Texture2D
    func has_animation(anim: StringName) -> bool
    func remove_animation(anim: StringName)
    func remove_frame(anim: StringName, idx: int)
    func rename_animation(anim: StringName, newname: StringName)
    func set_animation_loop(anim: StringName, loop: bool)
    func set_animation_speed(anim: StringName, fps: float)
    func set_frame(anim: StringName, idx: int, texture: Texture2D, duration: float = 1.0)

# Object < RefCounted < Resource < StyleBox

  class StyleBox extends Resource:

    var content_margin_bottom: float = -1.0
    var content_margin_left: float = -1.0
    var content_margin_right: float = -1.0
    var content_margin_top: float = -1.0

    func draw(canvas_item: RID, rect: Rect2)
    func get_content_margin(margin: enum Side) -> float
    func get_current_item_drawn() -> CanvasItem
    func get_margin(margin: enum Side) -> float
    func get_minimum_size() -> Vector2
    func get_offset() -> Vector2
    func set_content_margin(margin: enum Side, offset: float)
    func set_content_margin_all(offset: float)
    func test_mask(point: Vector2, rect: Rect2) -> bool

    func _draw(to_canvas_item: RID, rect: Rect2)
    func _get_draw_rect(rect: Rect2) -> Rect2
    func _get_minimum_size() -> Vector2
    func _test_mask(point: Vector2, rect: Rect2) -> bool

# Object < RefCounted < Resource < StyleBox < StyleBoxEmpty

  class StyleBoxEmpty extends StyleBox:

    pass 

# Object < RefCounted < Resource < StyleBox < StyleBoxFlat

  class StyleBoxFlat extends StyleBox:

    var anti_aliasing: bool = true
    var anti_aliasing_size: float = 1.0
    var bg_color: Color = Color(0.6, 0.6, 0.6, 1)
    var border_blend: bool = false
    var border_color: Color = Color(0.8, 0.8, 0.8, 1)
    var border_width_bottom: int = 0
    var border_width_left: int = 0
    var border_width_right: int = 0
    var border_width_top: int = 0
    var corner_detail: int = 8
    var corner_radius_bottom_left: int = 0
    var corner_radius_bottom_right: int = 0
    var corner_radius_top_left: int = 0
    var corner_radius_top_right: int = 0
    var draw_center: bool = true
    var expand_margin_bottom: float = 0.0
    var expand_margin_left: float = 0.0
    var expand_margin_right: float = 0.0
    var expand_margin_top: float = 0.0
    var shadow_color: Color = Color(0, 0, 0, 0.6)
    var shadow_offset: Vector2 = Vector2(0, 0)
    var shadow_size: int = 0
    var skew: Vector2 = Vector2(0, 0)

    func get_border_width(margin: enum Side) -> int
    func get_border_width_min() -> int
    func get_corner_radius(corner: enum Corner) -> int
    func get_expand_margin(margin: enum Side) -> float
    func set_border_width(margin: enum Side, width: int)
    func set_border_width_all(width: int)
    func set_corner_radius(corner: enum Corner, radius: int)
    func set_corner_radius_all(radius: int)
    func set_expand_margin(margin: enum Side, size: float)
    func set_expand_margin_all(size: float)

# Object < RefCounted < Resource < StyleBox < StyleBoxLine

  class StyleBoxLine extends StyleBox:

    var color: Color = Color(0, 0, 0, 1)
    var grow_begin: float = 1.0
    var grow_end: float = 1.0
    var thickness: int = 1
    var vertical: bool = false

# Object < RefCounted < Resource < StyleBox < StyleBoxTexture

  class StyleBoxTexture extends StyleBox:

    enum AxisStretchMode {
      AXIS_STRETCH_MODE_STRETCH = 0,
      AXIS_STRETCH_MODE_TILE = 1,
      AXIS_STRETCH_MODE_TILE_FIT = 2,
    }

    var axis_stretch_horizontal: enum AxisStretchMode = AXIS_STRETCH_MODE_STRETCH
    var axis_stretch_vertical: enum AxisStretchMode = AXIS_STRETCH_MODE_STRETCH
    var draw_center: bool = true
    var expand_margin_bottom: float = 0.0
    var expand_margin_left: float = 0.0
    var expand_margin_right: float = 0.0
    var expand_margin_top: float = 0.0
    var modulate_color: Color = Color(1, 1, 1, 1)
    var region_rect: Rect2 = Rect2(0, 0, 0, 0)
    var texture: Texture2D
    var texture_margin_bottom: float = 0.0
    var texture_margin_left: float = 0.0
    var texture_margin_right: float = 0.0
    var texture_margin_top: float = 0.0

    func get_expand_margin(margin: enum Side) -> float
    func get_texture_margin(margin: enum Side) -> float
    func set_expand_margin(margin: enum Side, size: float)
    func set_expand_margin_all(size: float)
    func set_texture_margin(margin: enum Side, size: float)
    func set_texture_margin_all(size: float)

# Object < RefCounted < Resource < SyntaxHighlighter

  class SyntaxHighlighter extends Resource:

    func clear_highlighting_cache()
    func get_line_syntax_highlighting(line: int) -> Dictionary
    func get_text_edit() -> TextEdit
    func update_cache()

    func _clear_highlighting_cache()
    func _get_line_syntax_highlighting(line: int) -> Dictionary
    func _update_cache()

# Object < RefCounted < Resource < SyntaxHighlighter < CodeHighlighter

  class CodeHighlighter extends SyntaxHighlighter:

    var color_regions: Dictionary = {}
    var function_color: Color = Color(0, 0, 0, 1)
    var keyword_colors: Dictionary = {}
    var member_keyword_colors: Dictionary = {}
    var member_variable_color: Color = Color(0, 0, 0, 1)
    var number_color: Color = Color(0, 0, 0, 1)
    var symbol_color: Color = Color(0, 0, 0, 1)

    func add_color_region(start_key: String, end_key: String, color: Color, line_only: bool = false)
    func add_keyword_color(keyword: String, color: Color)
    func add_member_keyword_color(member_keyword: String, color: Color)
    func clear_color_regions()
    func clear_keyword_colors()
    func clear_member_keyword_colors()
    func get_keyword_color(keyword: String) -> Color
    func get_member_keyword_color(member_keyword: String) -> Color
    func has_color_region(start_key: String) -> bool
    func has_keyword_color(keyword: String) -> bool
    func has_member_keyword_color(member_keyword: String) -> bool
    func remove_color_region(start_key: String)
    func remove_keyword_color(keyword: String)
    func remove_member_keyword_color(member_keyword: String)

# Object < RefCounted < Resource < Texture

  class Texture extends Resource:

    pass 

# Object < RefCounted < Resource < Texture < Texture2D

  class Texture2D extends Texture:

    func create_placeholder() -> Resource
    func draw(canvas_item: RID, position: Vector2, modulate: Color = Color(1, 1, 1, 1), transpose: bool = false)
    func draw_rect(canvas_item: RID, rect: Rect2, tile: bool, modulate: Color = Color(1, 1, 1, 1), transpose: bool = false)
    func draw_rect_region(canvas_item: RID, rect: Rect2, src_rect: Rect2, modulate: Color = Color(1, 1, 1, 1), transpose: bool = false, clip_uv: bool = true)
    func get_height() -> int
    func get_image() -> Image
    func get_size() -> Vector2
    func get_width() -> int
    func has_alpha() -> bool

    func _draw(to_canvas_item: RID, pos: Vector2, modulate: Color, transpose: bool)
    func _draw_rect(to_canvas_item: RID, rect: Rect2, tile: bool, modulate: Color, transpose: bool)
    func _draw_rect_region(to_canvas_item: RID, rect: Rect2, src_rect: Rect2, modulate: Color, transpose: bool, clip_uv: bool)
    func _get_height() -> int
    func _get_width() -> int
    func _has_alpha() -> bool
    func _is_pixel_opaque(x: int, y: int) -> bool

# Object < RefCounted < Resource < Texture < Texture2D < AnimatedTexture

  class AnimatedTexture extends Texture2D:

    const MAX_FRAMES = 256

    var current_frame: int
    var frames: int = 1
    var one_shot: bool = false
    var pause: bool = false
    var speed_scale: float = 1.0

    func get_frame_duration(frame: int) -> float
    func get_frame_texture(frame: int) -> Texture2D
    func set_frame_duration(frame: int, duration: float)
    func set_frame_texture(frame: int, texture: Texture2D)

# Object < RefCounted < Resource < Texture < Texture2D < AtlasTexture

  class AtlasTexture extends Texture2D:

    var atlas: Texture2D
    var filter_clip: bool = false
    var margin: Rect2 = Rect2(0, 0, 0, 0)
    var region: Rect2 = Rect2(0, 0, 0, 0)

# Object < RefCounted < Resource < Texture < Texture2D < CameraTexture

  class CameraTexture extends Texture2D:

    var camera_feed_id: int = 0
    var camera_is_active: bool = false
    var which_feed: enum CameraServer.FeedImage = CameraServer.FEED_RGBA_IMAGE

# Object < RefCounted < Resource < Texture < Texture2D < CanvasTexture

  class CanvasTexture extends Texture2D:

    var diffuse_texture: Texture2D
    var normal_texture: Texture2D
    var specular_color: Color = Color(1, 1, 1, 1)
    var specular_shininess: float = 1.0
    var specular_texture: Texture2D
    var texture_filter: enum CanvasItem.TextureFilter = CanvasItem.TEXTURE_FILTER_PARENT_NODE
    var texture_repeat: enum CanvasItem.TextureRepeat = CanvasItem.TEXTURE_REPEAT_PARENT_NODE

# Object < RefCounted < Resource < Texture < Texture2D < CompressedTexture2D

  class CompressedTexture2D extends Texture2D:

    var load_path: String = ""

    func load(path: String) -> enum Error

# Object < RefCounted < Resource < Texture < Texture2D < CurveTexture

  class CurveTexture extends Texture2D:

    enum TextureMode {
      TEXTURE_MODE_RGB = 0,
      TEXTURE_MODE_RED = 1,
    }

    var curve: Curve
    var texture_mode: enum TextureMode = TEXTURE_MODE_RGB
    var width: int = 256

# Object < RefCounted < Resource < Texture < Texture2D < CurveXYZTexture

  class CurveXYZTexture extends Texture2D:

    var curve_x: Curve
    var curve_y: Curve
    var curve_z: Curve
    var width: int = 256

# Object < RefCounted < Resource < Texture < Texture2D < GradientTexture1D

  class GradientTexture1D extends Texture2D:

    var gradient: Gradient
    var use_hdr: bool = false
    var width: int = 256

# Object < RefCounted < Resource < Texture < Texture2D < GradientTexture2D

  class GradientTexture2D extends Texture2D:

    enum Fill {
      FILL_LINEAR = 0,
      FILL_RADIAL = 1,
      FILL_SQUARE = 2,
    }

    enum Repeat {
      REPEAT_NONE = 0,
      REPEAT = 1,
      REPEAT_MIRROR = 2,
    }

    var fill: enum Fill = FILL_LINEAR
    var fill_from: Vector2 = Vector2(0, 0)
    var fill_to: Vector2 = Vector2(1, 0)
    var gradient: Gradient
    var height: int = 64
    var repeat: enum Repeat = REPEAT_NONE
    var use_hdr: bool = false
    var width: int = 64

# Object < RefCounted < Resource < Texture < Texture2D < ImageTexture

  class ImageTexture extends Texture2D:

    static func create_from_image(image: Image) -> ImageTexture

    func get_format() -> enum Image.Format
    func set_image(image: Image)
    func set_size_override(size: Vector2i)
    func update(image: Image)

# Object < RefCounted < Resource < Texture < Texture2D < MeshTexture

  class MeshTexture extends Texture2D:

    var base_texture: Texture2D
    var image_size: Vector2 = Vector2(0, 0)
    var mesh: Mesh

# Object < RefCounted < Resource < Texture < Texture2D < PlaceholderTexture2D

  class PlaceholderTexture2D extends Texture2D:

    var size: Vector2 = Vector2(1, 1)

# Object < RefCounted < Resource < Texture < Texture2D < PortableCompressedTexture2D

  class PortableCompressedTexture2D extends Texture2D:

    enum CompressionMode {
      COMPRESSION_MODE_LOSSLESS = 0,
      COMPRESSION_MODE_LOSSY = 1,
      COMPRESSION_MODE_BASIS_UNIVERSAL = 2,
      COMPRESSION_MODE_S3TC = 3,
      COMPRESSION_MODE_ETC2 = 4,
      COMPRESSION_MODE_BPTC = 5,
    }

    static func is_keeping_all_compressed_buffers() -> bool
    static func set_keep_all_compressed_buffers(keep: bool)

    var _data: PackedByteArray = PackedByteArray()
    var keep_compressed_buffer: bool = false
    var size_override: Vector2 = Vector2(0, 0)

    func create_from_image(image: Image, compression_mode: enum CompressionMode, normal_map: bool = false, lossy_quality: float = 0.8)
    func get_compression_mode() -> enum CompressionMode
    func get_format() -> enum Image.Format

# Object < RefCounted < Resource < Texture < Texture2D < Texture2DRD

  class Texture2DRD extends Texture2D:

    var texture_rd_rid: RID = RID()

# Object < RefCounted < Resource < Texture < Texture2D < ViewportTexture

  class ViewportTexture extends Texture2D:

    var viewport_path: NodePath = NodePath("")

# Object < RefCounted < Resource < Texture < Texture3D

  class Texture3D extends Texture:

    func create_placeholder() -> Resource
    func get_data() -> Array[Image]
    func get_depth() -> int
    func get_format() -> enum Image.Format
    func get_height() -> int
    func get_width() -> int
    func has_mipmaps() -> bool

    func _get_data() -> Array[Image]
    func _get_depth() -> int
    func _get_format() -> enum Image.Format
    func _get_height() -> int
    func _get_width() -> int
    func _has_mipmaps() -> bool

# Object < RefCounted < Resource < Texture < Texture3D < CompressedTexture3D

  class CompressedTexture3D extends Texture3D:

    var load_path: String = ""

    func load(path: String) -> enum Error

# Object < RefCounted < Resource < Texture < Texture3D < ImageTexture3D

  class ImageTexture3D extends Texture3D:

    func create(format: enum Image.Format, width: int, height: int, depth: int, use_mipmaps: bool, data: Array[Image]) -> enum Error
    func update(data: Array[Image])

# Object < RefCounted < Resource < Texture < Texture3D < PlaceholderTexture3D

  class PlaceholderTexture3D extends Texture3D:

    var size: Vector3i = Vector3i(1, 1, 1)

# Object < RefCounted < Resource < Texture < Texture3D < Texture3DRD

  class Texture3DRD extends Texture3D:

    var texture_rd_rid: RID = RID()

# Object < RefCounted < Resource < Texture < TextureLayered

  class TextureLayered extends Texture:

    enum LayeredType {
      LAYERED_TYPE_2D_ARRAY = 0,
      LAYERED_TYPE_CUBEMAP = 1,
      LAYERED_TYPE_CUBEMAP_ARRAY = 2,
    }

    func get_format() -> enum Image.Format
    func get_height() -> int
    func get_layer_data(layer: int) -> Image
    func get_layered_type() -> enum LayeredType
    func get_layers() -> int
    func get_width() -> int
    func has_mipmaps() -> bool

    func _get_format() -> enum Image.Format
    func _get_height() -> int
    func _get_layer_data(layer_index: int) -> Image
    func _get_layered_type() -> int
    func _get_layers() -> int
    func _get_width() -> int
    func _has_mipmaps() -> bool

# Object < RefCounted < Resource < Texture < TextureLayered < CompressedTextureLayered (abstract)

  class CompressedTextureLayered extends TextureLayered:

    var load_path: String = ""

    func load(path: String) -> enum Error

# Object < RefCounted < Resource < Texture < TextureLayered < CompressedTextureLayered < CompressedCubemap

  class CompressedCubemap extends CompressedTextureLayered:

    pass 

# Object < RefCounted < Resource < Texture < TextureLayered < CompressedTextureLayered < CompressedCubemapArray

  class CompressedCubemapArray extends CompressedTextureLayered:

    pass 

# Object < RefCounted < Resource < Texture < TextureLayered < CompressedTextureLayered < CompressedTexture2DArray

  class CompressedTexture2DArray extends CompressedTextureLayered:

    pass 

# Object < RefCounted < Resource < Texture < TextureLayered < ImageTextureLayered (abstract)

  class ImageTextureLayered extends TextureLayered:

    func create_from_images(images: Array[Image]) -> enum Error
    func update_layer(image: Image, layer: int)

# Object < RefCounted < Resource < Texture < TextureLayered < ImageTextureLayered < Cubemap

  class Cubemap extends ImageTextureLayered:

    func create_placeholder() -> Resource

# Object < RefCounted < Resource < Texture < TextureLayered < ImageTextureLayered < CubemapArray

  class CubemapArray extends ImageTextureLayered:

    func create_placeholder() -> Resource

# Object < RefCounted < Resource < Texture < TextureLayered < ImageTextureLayered < Texture2DArray

  class Texture2DArray extends ImageTextureLayered:

    func create_placeholder() -> Resource

# Object < RefCounted < Resource < Texture < TextureLayered < PlaceholderTextureLayered (abstract)

  class PlaceholderTextureLayered extends TextureLayered:

    var layers: int = 1
    var size: Vector2i = Vector2i(1, 1)

# Object < RefCounted < Resource < Texture < TextureLayered < PlaceholderTextureLayered < PlaceholderCubemap

  class PlaceholderCubemap extends PlaceholderTextureLayered:

    pass 

# Object < RefCounted < Resource < Texture < TextureLayered < PlaceholderTextureLayered < PlaceholderCubemapArray

  class PlaceholderCubemapArray extends PlaceholderTextureLayered:

    pass 

# Object < RefCounted < Resource < Texture < TextureLayered < PlaceholderTextureLayered < PlaceholderTexture2DArray

  class PlaceholderTexture2DArray extends PlaceholderTextureLayered:

    pass 

# Object < RefCounted < Resource < Texture < TextureLayered < TextureLayeredRD (abstract)

  class TextureLayeredRD extends TextureLayered:

    var texture_rd_rid: RID = RID()

# Object < RefCounted < Resource < Texture < TextureLayered < TextureLayeredRD < Texture2DArrayRD

  class Texture2DArrayRD extends TextureLayeredRD:

    pass 

# Object < RefCounted < Resource < Texture < TextureLayered < TextureLayeredRD < TextureCubemapArrayRD

  class TextureCubemapArrayRD extends TextureLayeredRD:

    pass 

# Object < RefCounted < Resource < Texture < TextureLayered < TextureLayeredRD < TextureCubemapRD

  class TextureCubemapRD extends TextureLayeredRD:

    pass 

# Object < RefCounted < Resource < Theme

  class Theme extends Resource:

    enum DataType {
      DATA_TYPE_COLOR = 0,
      DATA_TYPE_CONSTANT = 1,
      DATA_TYPE_FONT = 2,
      DATA_TYPE_FONT_SIZE = 3,
      DATA_TYPE_ICON = 4,
      DATA_TYPE_STYLEBOX = 5,
      DATA_TYPE_MAX = 6,
    }

    var default_base_scale: float = 0.0
    var default_font: Font
    var default_font_size: int = -1

    func add_type(theme_type: StringName)
    func clear()
    func clear_color(name: StringName, theme_type: StringName)
    func clear_constant(name: StringName, theme_type: StringName)
    func clear_font(name: StringName, theme_type: StringName)
    func clear_font_size(name: StringName, theme_type: StringName)
    func clear_icon(name: StringName, theme_type: StringName)
    func clear_stylebox(name: StringName, theme_type: StringName)
    func clear_theme_item(data_type: enum DataType, name: StringName, theme_type: StringName)
    func clear_type_variation(theme_type: StringName)
    func get_color(name: StringName, theme_type: StringName) -> Color
    func get_color_list(theme_type: String) -> PackedStringArray
    func get_color_type_list() -> PackedStringArray
    func get_constant(name: StringName, theme_type: StringName) -> int
    func get_constant_list(theme_type: String) -> PackedStringArray
    func get_constant_type_list() -> PackedStringArray
    func get_font(name: StringName, theme_type: StringName) -> Font
    func get_font_list(theme_type: String) -> PackedStringArray
    func get_font_size(name: StringName, theme_type: StringName) -> int
    func get_font_size_list(theme_type: String) -> PackedStringArray
    func get_font_size_type_list() -> PackedStringArray
    func get_font_type_list() -> PackedStringArray
    func get_icon(name: StringName, theme_type: StringName) -> Texture2D
    func get_icon_list(theme_type: String) -> PackedStringArray
    func get_icon_type_list() -> PackedStringArray
    func get_stylebox(name: StringName, theme_type: StringName) -> StyleBox
    func get_stylebox_list(theme_type: String) -> PackedStringArray
    func get_stylebox_type_list() -> PackedStringArray
    func get_theme_item(data_type: enum DataType, name: StringName, theme_type: StringName) -> Variant
    func get_theme_item_list(data_type: enum DataType, theme_type: String) -> PackedStringArray
    func get_theme_item_type_list(data_type: enum DataType) -> PackedStringArray
    func get_type_list() -> PackedStringArray
    func get_type_variation_base(theme_type: StringName) -> StringName
    func get_type_variation_list(base_type: StringName) -> PackedStringArray
    func has_color(name: StringName, theme_type: StringName) -> bool
    func has_constant(name: StringName, theme_type: StringName) -> bool
    func has_default_base_scale() -> bool
    func has_default_font() -> bool
    func has_default_font_size() -> bool
    func has_font(name: StringName, theme_type: StringName) -> bool
    func has_font_size(name: StringName, theme_type: StringName) -> bool
    func has_icon(name: StringName, theme_type: StringName) -> bool
    func has_stylebox(name: StringName, theme_type: StringName) -> bool
    func has_theme_item(data_type: enum DataType, name: StringName, theme_type: StringName) -> bool
    func is_type_variation(theme_type: StringName, base_type: StringName) -> bool
    func merge_with(other: Theme)
    func remove_type(theme_type: StringName)
    func rename_color(old_name: StringName, name: StringName, theme_type: StringName)
    func rename_constant(old_name: StringName, name: StringName, theme_type: StringName)
    func rename_font(old_name: StringName, name: StringName, theme_type: StringName)
    func rename_font_size(old_name: StringName, name: StringName, theme_type: StringName)
    func rename_icon(old_name: StringName, name: StringName, theme_type: StringName)
    func rename_stylebox(old_name: StringName, name: StringName, theme_type: StringName)
    func rename_theme_item(data_type: enum DataType, old_name: StringName, name: StringName, theme_type: StringName)
    func set_color(name: StringName, theme_type: StringName, color: Color)
    func set_constant(name: StringName, theme_type: StringName, constant: int)
    func set_font(name: StringName, theme_type: StringName, font: Font)
    func set_font_size(name: StringName, theme_type: StringName, font_size: int)
    func set_icon(name: StringName, theme_type: StringName, texture: Texture2D)
    func set_stylebox(name: StringName, theme_type: StringName, texture: StyleBox)
    func set_theme_item(data_type: enum DataType, name: StringName, theme_type: StringName, value: Variant)
    func set_type_variation(theme_type: StringName, base_type: StringName)

# Object < RefCounted < Resource < TileMapPattern

  class TileMapPattern extends Resource:

    func get_cell_alternative_tile(coords: Vector2i) -> int
    func get_cell_atlas_coords(coords: Vector2i) -> Vector2i
    func get_cell_source_id(coords: Vector2i) -> int
    func get_size() -> Vector2i
    func get_used_cells() -> Array[Vector2i]
    func has_cell(coords: Vector2i) -> bool
    func is_empty() -> bool
    func remove_cell(coords: Vector2i, update_size: bool)
    func set_cell(coords: Vector2i, source_id: int = -1, atlas_coords: Vector2i = Vector2i(-1, -1), alternative_tile: int = -1)
    func set_size(size: Vector2i)

# Object < RefCounted < Resource < TileSet

  class TileSet extends Resource:

    enum CellNeighbor {
      CELL_NEIGHBOR_RIGHT_SIDE = 0,
      CELL_NEIGHBOR_RIGHT_CORNER = 1,
      CELL_NEIGHBOR_BOTTOM_RIGHT_SIDE = 2,
      CELL_NEIGHBOR_BOTTOM_RIGHT_CORNER = 3,
      CELL_NEIGHBOR_BOTTOM_SIDE = 4,
      CELL_NEIGHBOR_BOTTOM_CORNER = 5,
      CELL_NEIGHBOR_BOTTOM_LEFT_SIDE = 6,
      CELL_NEIGHBOR_BOTTOM_LEFT_CORNER = 7,
      CELL_NEIGHBOR_LEFT_SIDE = 8,
      CELL_NEIGHBOR_LEFT_CORNER = 9,
      CELL_NEIGHBOR_TOP_LEFT_SIDE = 10,
      CELL_NEIGHBOR_TOP_LEFT_CORNER = 11,
      CELL_NEIGHBOR_TOP_SIDE = 12,
      CELL_NEIGHBOR_TOP_CORNER = 13,
      CELL_NEIGHBOR_TOP_RIGHT_SIDE = 14,
      CELL_NEIGHBOR_TOP_RIGHT_CORNER = 15,
    }

    enum TerrainMode {
      TERRAIN_MODE_MATCH_CORNERS_AND_SIDES = 0,
      TERRAIN_MODE_MATCH_CORNERS = 1,
      TERRAIN_MODE_MATCH_SIDES = 2,
    }

    enum TileLayout {
      TILE_LAYOUT_STACKED = 0,
      TILE_LAYOUT_STACKED_OFFSET = 1,
      TILE_LAYOUT_STAIRS_RIGHT = 2,
      TILE_LAYOUT_STAIRS_DOWN = 3,
      TILE_LAYOUT_DIAMOND_RIGHT = 4,
      TILE_LAYOUT_DIAMOND_DOWN = 5,
    }

    enum TileOffsetAxis {
      TILE_OFFSET_AXIS_HORIZONTAL = 0,
      TILE_OFFSET_AXIS_VERTICAL = 1,
    }

    enum TileShape {
      TILE_SHAPE_SQUARE = 0,
      TILE_SHAPE_ISOMETRIC = 1,
      TILE_SHAPE_HALF_OFFSET_SQUARE = 2,
      TILE_SHAPE_HEXAGON = 3,
    }

    var tile_layout: enum TileLayout = TILE_LAYOUT_STACKED
    var tile_offset_axis: enum TileOffsetAxis = TILE_OFFSET_AXIS_HORIZONTAL
    var tile_shape: enum TileShape = TILE_SHAPE_SQUARE
    var tile_size: Vector2i = Vector2i(16, 16)
    var uv_clipping: bool = false

    func add_custom_data_layer(to_position: int = -1)
    func add_navigation_layer(to_position: int = -1)
    func add_occlusion_layer(to_position: int = -1)
    func add_pattern(pattern: TileMapPattern, index: int = -1) -> int
    func add_physics_layer(to_position: int = -1)
    func add_source(source: TileSetSource, atlas_source_id_override: int = -1) -> int
    func add_terrain(terrain_set: int, to_position: int = -1)
    func add_terrain_set(to_position: int = -1)
    func cleanup_invalid_tile_proxies()
    func clear_tile_proxies()
    func get_alternative_level_tile_proxy(source_from: int, coords_from: Vector2i, alternative_from: int) -> Array
    func get_coords_level_tile_proxy(source_from: int, coords_from: Vector2i) -> Array
    func get_custom_data_layer_by_name(layer_name: String) -> int
    func get_custom_data_layer_name(layer_index: int) -> String
    func get_custom_data_layer_type(layer_index: int) -> enum Type
    func get_custom_data_layers_count() -> int
    func get_navigation_layer_layer_value(layer_index: int, layer_number: int) -> bool
    func get_navigation_layer_layers(layer_index: int) -> int
    func get_navigation_layers_count() -> int
    func get_next_source_id() -> int
    func get_occlusion_layer_light_mask(layer_index: int) -> int
    func get_occlusion_layer_sdf_collision(layer_index: int) -> bool
    func get_occlusion_layers_count() -> int
    func get_pattern(index: int = -1) -> TileMapPattern
    func get_patterns_count() -> int
    func get_physics_layer_collision_layer(layer_index: int) -> int
    func get_physics_layer_collision_mask(layer_index: int) -> int
    func get_physics_layer_physics_material(layer_index: int) -> PhysicsMaterial
    func get_physics_layers_count() -> int
    func get_source(source_id: int) -> TileSetSource
    func get_source_count() -> int
    func get_source_id(index: int) -> int
    func get_source_level_tile_proxy(source_from: int) -> int
    func get_terrain_color(terrain_set: int, terrain_index: int) -> Color
    func get_terrain_name(terrain_set: int, terrain_index: int) -> String
    func get_terrain_set_mode(terrain_set: int) -> enum TerrainMode
    func get_terrain_sets_count() -> int
    func get_terrains_count(terrain_set: int) -> int
    func has_alternative_level_tile_proxy(source_from: int, coords_from: Vector2i, alternative_from: int) -> bool
    func has_coords_level_tile_proxy(source_from: int, coords_from: Vector2i) -> bool
    func has_source(source_id: int) -> bool
    func has_source_level_tile_proxy(source_from: int) -> bool
    func map_tile_proxy(source_from: int, coords_from: Vector2i, alternative_from: int) -> Array
    func move_custom_data_layer(layer_index: int, to_position: int)
    func move_navigation_layer(layer_index: int, to_position: int)
    func move_occlusion_layer(layer_index: int, to_position: int)
    func move_physics_layer(layer_index: int, to_position: int)
    func move_terrain(terrain_set: int, terrain_index: int, to_position: int)
    func move_terrain_set(terrain_set: int, to_position: int)
    func remove_alternative_level_tile_proxy(source_from: int, coords_from: Vector2i, alternative_from: int)
    func remove_coords_level_tile_proxy(source_from: int, coords_from: Vector2i)
    func remove_custom_data_layer(layer_index: int)
    func remove_navigation_layer(layer_index: int)
    func remove_occlusion_layer(layer_index: int)
    func remove_pattern(index: int)
    func remove_physics_layer(layer_index: int)
    func remove_source(source_id: int)
    func remove_source_level_tile_proxy(source_from: int)
    func remove_terrain(terrain_set: int, terrain_index: int)
    func remove_terrain_set(terrain_set: int)
    func set_alternative_level_tile_proxy(source_from: int, coords_from: Vector2i, alternative_from: int, source_to: int, coords_to: Vector2i, alternative_to: int)
    func set_coords_level_tile_proxy(p_source_from: int, coords_from: Vector2i, source_to: int, coords_to: Vector2i)
    func set_custom_data_layer_name(layer_index: int, layer_name: String)
    func set_custom_data_layer_type(layer_index: int, layer_type: enum Type)
    func set_navigation_layer_layer_value(layer_index: int, layer_number: int, value: bool)
    func set_navigation_layer_layers(layer_index: int, layers: int)
    func set_occlusion_layer_light_mask(layer_index: int, light_mask: int)
    func set_occlusion_layer_sdf_collision(layer_index: int, sdf_collision: bool)
    func set_physics_layer_collision_layer(layer_index: int, layer: int)
    func set_physics_layer_collision_mask(layer_index: int, mask: int)
    func set_physics_layer_physics_material(layer_index: int, physics_material: PhysicsMaterial)
    func set_source_id(source_id: int, new_source_id: int)
    func set_source_level_tile_proxy(source_from: int, source_to: int)
    func set_terrain_color(terrain_set: int, terrain_index: int, color: Color)
    func set_terrain_name(terrain_set: int, terrain_index: int, name: String)
    func set_terrain_set_mode(terrain_set: int, mode: enum TerrainMode)

# Object < RefCounted < Resource < TileSetSource (abstract)

  class TileSetSource extends Resource:

    func get_alternative_tile_id(atlas_coords: Vector2i, index: int) -> int
    func get_alternative_tiles_count(atlas_coords: Vector2i) -> int
    func get_tile_id(index: int) -> Vector2i
    func get_tiles_count() -> int
    func has_alternative_tile(atlas_coords: Vector2i, alternative_tile: int) -> bool
    func has_tile(atlas_coords: Vector2i) -> bool

# Object < RefCounted < Resource < TileSetSource < TileSetAtlasSource

  class TileSetAtlasSource extends TileSetSource:

    const TRANSFORM_FLIP_H = 4096
    const TRANSFORM_FLIP_V = 8192
    const TRANSFORM_TRANSPOSE = 16384

    enum TileAnimationMode {
      TILE_ANIMATION_MODE_DEFAULT = 0,
      TILE_ANIMATION_MODE_RANDOM_START_TIMES = 1,
      TILE_ANIMATION_MODE_MAX = 2,
    }

    var margins: Vector2i = Vector2i(0, 0)
    var separation: Vector2i = Vector2i(0, 0)
    var texture: Texture2D
    var texture_region_size: Vector2i = Vector2i(16, 16)
    var use_texture_padding: bool = true

    func clear_tiles_outside_texture()
    func create_alternative_tile(atlas_coords: Vector2i, alternative_id_override: int = -1) -> int
    func create_tile(atlas_coords: Vector2i, size: Vector2i = Vector2i(1, 1))
    func get_atlas_grid_size() -> Vector2i
    func get_next_alternative_tile_id(atlas_coords: Vector2i) -> int
    func get_runtime_texture() -> Texture2D
    func get_runtime_tile_texture_region(atlas_coords: Vector2i, frame: int) -> Rect2i
    func get_tile_animation_columns(atlas_coords: Vector2i) -> int
    func get_tile_animation_frame_duration(atlas_coords: Vector2i, frame_index: int) -> float
    func get_tile_animation_frames_count(atlas_coords: Vector2i) -> int
    func get_tile_animation_mode(atlas_coords: Vector2i) -> enum TileAnimationMode
    func get_tile_animation_separation(atlas_coords: Vector2i) -> Vector2i
    func get_tile_animation_speed(atlas_coords: Vector2i) -> float
    func get_tile_animation_total_duration(atlas_coords: Vector2i) -> float
    func get_tile_at_coords(atlas_coords: Vector2i) -> Vector2i
    func get_tile_data(atlas_coords: Vector2i, alternative_tile: int) -> TileData
    func get_tile_size_in_atlas(atlas_coords: Vector2i) -> Vector2i
    func get_tile_texture_region(atlas_coords: Vector2i, frame: int = 0) -> Rect2i
    func get_tiles_to_be_removed_on_change(texture: Texture2D, margins: Vector2i, separation: Vector2i, texture_region_size: Vector2i) -> PackedVector2Array
    func has_room_for_tile(atlas_coords: Vector2i, size: Vector2i, animation_columns: int, animation_separation: Vector2i, frames_count: int, ignored_tile: Vector2i = Vector2i(-1, -1)) -> bool
    func has_tiles_outside_texture() -> bool
    func move_tile_in_atlas(atlas_coords: Vector2i, new_atlas_coords: Vector2i = Vector2i(-1, -1), new_size: Vector2i = Vector2i(-1, -1))
    func remove_alternative_tile(atlas_coords: Vector2i, alternative_tile: int)
    func remove_tile(atlas_coords: Vector2i)
    func set_alternative_tile_id(atlas_coords: Vector2i, alternative_tile: int, new_id: int)
    func set_tile_animation_columns(atlas_coords: Vector2i, frame_columns: int)
    func set_tile_animation_frame_duration(atlas_coords: Vector2i, frame_index: int, duration: float)
    func set_tile_animation_frames_count(atlas_coords: Vector2i, frames_count: int)
    func set_tile_animation_mode(atlas_coords: Vector2i, mode: enum TileAnimationMode)
    func set_tile_animation_separation(atlas_coords: Vector2i, separation: Vector2i)
    func set_tile_animation_speed(atlas_coords: Vector2i, speed: float)

# Object < RefCounted < Resource < TileSetSource < TileSetScenesCollectionSource

  class TileSetScenesCollectionSource extends TileSetSource:

    func create_scene_tile(packed_scene: PackedScene, id_override: int = -1) -> int
    func get_next_scene_tile_id() -> int
    func get_scene_tile_display_placeholder(id: int) -> bool
    func get_scene_tile_id(index: int) -> int
    func get_scene_tile_scene(id: int) -> PackedScene
    func get_scene_tiles_count() -> int
    func has_scene_tile_id(id: int) -> bool
    func remove_scene_tile(id: int)
    func set_scene_tile_display_placeholder(id: int, display_placeholder: bool)
    func set_scene_tile_id(id: int, new_id: int)
    func set_scene_tile_scene(id: int, packed_scene: PackedScene)

# Object < RefCounted < Resource < Translation

  class Translation extends Resource:

    var locale: String = "en"

    func add_message(src_message: StringName, xlated_message: StringName, context: StringName = "")
    func add_plural_message(src_message: StringName, xlated_messages: PackedStringArray, context: StringName = "")
    func erase_message(src_message: StringName, context: StringName = "")
    func get_message(src_message: StringName, context: StringName = "") -> StringName
    func get_message_count() -> int
    func get_message_list() -> PackedStringArray
    func get_plural_message(src_message: StringName, src_plural_message: StringName, n: int, context: StringName = "") -> StringName
    func get_translated_message_list() -> PackedStringArray

    func _get_message(src_message: StringName, context: StringName) -> StringName
    func _get_plural_message(src_message: StringName, src_plural_message: StringName, n: int, context: StringName) -> StringName

# Object < RefCounted < Resource < Translation < OptimizedTranslation

  class OptimizedTranslation extends Translation:

    func generate(from: Translation)

# Object < RefCounted < Resource < VideoStream

  class VideoStream extends Resource:

    var file: String = ""

    func _instantiate_playback() -> VideoStreamPlayback

# Object < RefCounted < Resource < VideoStreamPlayback

  class VideoStreamPlayback extends Resource:

    func mix_audio(num_frames: int, buffer: PackedFloat32Array = PackedFloat32Array(), offset: int = 0) -> int

    func _get_channels() -> int
    func _get_length() -> float
    func _get_mix_rate() -> int
    func _get_playback_position() -> float
    func _get_texture() -> Texture2D
    func _is_paused() -> bool
    func _is_playing() -> bool
    func _play()
    func _seek(time: float)
    func _set_audio_track(idx: int)
    func _set_paused(paused: bool)
    func _stop()
    func _update(delta: float)

# Object < RefCounted < Resource < VisualShaderNode (abstract)

  class VisualShaderNode extends Resource:

    enum PortType {
      PORT_TYPE_SCALAR = 0,
      PORT_TYPE_SCALAR_INT = 1,
      PORT_TYPE_SCALAR_UINT = 2,
      PORT_TYPE_VECTOR_2D = 3,
      PORT_TYPE_VECTOR_3D = 4,
      PORT_TYPE_VECTOR_4D = 5,
      PORT_TYPE_BOOLEAN = 6,
      PORT_TYPE_TRANSFORM = 7,
      PORT_TYPE_SAMPLER = 8,
      PORT_TYPE_MAX = 9,
    }

    var output_port_for_preview: int = -1

    func clear_default_input_values()
    func get_default_input_port(type: enum PortType) -> int
    func get_default_input_values() -> Array
    func get_input_port_default_value(port: int) -> Variant
    func remove_input_port_default_value(port: int)
    func set_default_input_values(values: Array)
    func set_input_port_default_value(port: int, value: Variant, prev_value: Variant = null)

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeBillboard

  class VisualShaderNodeBillboard extends VisualShaderNode:

    enum BillboardType {
      BILLBOARD_TYPE_DISABLED = 0,
      BILLBOARD_TYPE_ENABLED = 1,
      BILLBOARD_TYPE_FIXED_Y = 2,
      BILLBOARD_TYPE_PARTICLES = 3,
      BILLBOARD_TYPE_MAX = 4,
    }

    var billboard_type: enum BillboardType = BILLBOARD_TYPE_ENABLED
    var keep_scale: bool = false

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeClamp

  class VisualShaderNodeClamp extends VisualShaderNode:

    enum OpType {
      OP_TYPE_FLOAT = 0,
      OP_TYPE_INT = 1,
      OP_TYPE_UINT = 2,
      OP_TYPE_VECTOR_2D = 3,
      OP_TYPE_VECTOR_3D = 4,
      OP_TYPE_VECTOR_4D = 5,
      OP_TYPE_MAX = 6,
    }

    var op_type: enum OpType = OP_TYPE_FLOAT

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeColorFunc

  class VisualShaderNodeColorFunc extends VisualShaderNode:

    enum Function {
      FUNC_GRAYSCALE = 0,
      FUNC_HSV2RGB = 1,
      FUNC_RGB2HSV = 2,
      FUNC_SEPIA = 3,
      FUNC_MAX = 4,
    }

    var function: enum Function = FUNC_GRAYSCALE

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeColorOp

  class VisualShaderNodeColorOp extends VisualShaderNode:

    enum Operator {
      OP_SCREEN = 0,
      OP_DIFFERENCE = 1,
      OP_DARKEN = 2,
      OP_LIGHTEN = 3,
      OP_OVERLAY = 4,
      OP_DODGE = 5,
      OP_BURN = 6,
      OP_SOFT_LIGHT = 7,
      OP_HARD_LIGHT = 8,
      OP_MAX = 9,
    }

    var operator: enum Operator = OP_SCREEN

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeCompare

  class VisualShaderNodeCompare extends VisualShaderNode:

    enum ComparisonType {
      CTYPE_SCALAR = 0,
      CTYPE_SCALAR_INT = 1,
      CTYPE_SCALAR_UINT = 2,
      CTYPE_VECTOR_2D = 3,
      CTYPE_VECTOR_3D = 4,
      CTYPE_VECTOR_4D = 5,
      CTYPE_BOOLEAN = 6,
      CTYPE_TRANSFORM = 7,
      CTYPE_MAX = 8,
    }

    enum Condition {
      COND_ALL = 0,
      COND_ANY = 1,
      COND_MAX = 2,
    }

    enum Function {
      FUNC_EQUAL = 0,
      FUNC_NOT_EQUAL = 1,
      FUNC_GREATER_THAN = 2,
      FUNC_GREATER_THAN_EQUAL = 3,
      FUNC_LESS_THAN = 4,
      FUNC_LESS_THAN_EQUAL = 5,
      FUNC_MAX = 6,
    }

    var condition: enum Condition = COND_ALL
    var function: enum Function = FUNC_EQUAL
    var type: enum ComparisonType = CTYPE_SCALAR

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeConstant (abstract)

  class VisualShaderNodeConstant extends VisualShaderNode:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeConstant < VisualShaderNodeBooleanConstant

  class VisualShaderNodeBooleanConstant extends VisualShaderNodeConstant:

    var constant: bool = false

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeConstant < VisualShaderNodeColorConstant

  class VisualShaderNodeColorConstant extends VisualShaderNodeConstant:

    var constant: Color = Color(1, 1, 1, 1)

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeConstant < VisualShaderNodeFloatConstant

  class VisualShaderNodeFloatConstant extends VisualShaderNodeConstant:

    var constant: float = 0.0

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeConstant < VisualShaderNodeIntConstant

  class VisualShaderNodeIntConstant extends VisualShaderNodeConstant:

    var constant: int = 0

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeConstant < VisualShaderNodeTransformConstant

  class VisualShaderNodeTransformConstant extends VisualShaderNodeConstant:

    var constant: Transform3D = Transform3D(Vector3(1, 0, 0), Vector3(0, 1, 0), Vector3(0, 0, 1), Vector3(0, 0, 0))

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeConstant < VisualShaderNodeUIntConstant

  class VisualShaderNodeUIntConstant extends VisualShaderNodeConstant:

    var constant: int = 0

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeConstant < VisualShaderNodeVec2Constant

  class VisualShaderNodeVec2Constant extends VisualShaderNodeConstant:

    var constant: Vector2 = Vector2(0, 0)

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeConstant < VisualShaderNodeVec3Constant

  class VisualShaderNodeVec3Constant extends VisualShaderNodeConstant:

    var constant: Vector3 = Vector3(0, 0, 0)

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeConstant < VisualShaderNodeVec4Constant

  class VisualShaderNodeVec4Constant extends VisualShaderNodeConstant:

    var constant: Quaternion = Quaternion(0, 0, 0, 1)

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeCubemap

  class VisualShaderNodeCubemap extends VisualShaderNode:

    enum Source {
      SOURCE_TEXTURE = 0,
      SOURCE_PORT = 1,
      SOURCE_MAX = 2,
    }

    enum TextureType {
      TYPE_DATA = 0,
      TYPE_COLOR = 1,
      TYPE_NORMAL_MAP = 2,
      TYPE_MAX = 3,
    }

    var cube_map: Cubemap
    var source: enum Source = SOURCE_TEXTURE
    var texture_type: enum TextureType = TYPE_DATA

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeCustom

  class VisualShaderNodeCustom extends VisualShaderNode:

    func get_option_index(option: int) -> int

    func _get_category() -> String
    func _get_code(input_vars: Array[String], output_vars: Array[String], mode: enum Shader.Mode, type: enum VisualShader.Type) -> String
    func _get_default_input_port(type: enum VisualShaderNode.PortType) -> int
    func _get_description() -> String
    func _get_func_code(mode: enum Shader.Mode, type: enum VisualShader.Type) -> String
    func _get_global_code(mode: enum Shader.Mode) -> String
    func _get_input_port_count() -> int
    func _get_input_port_default_value(port: int) -> Variant
    func _get_input_port_name(port: int) -> String
    func _get_input_port_type(port: int) -> enum VisualShaderNode.PortType
    func _get_name() -> String
    func _get_output_port_count() -> int
    func _get_output_port_name(port: int) -> String
    func _get_output_port_type(port: int) -> enum VisualShaderNode.PortType
    func _get_property_count() -> int
    func _get_property_default_index(index: int) -> int
    func _get_property_name(index: int) -> String
    func _get_property_options(index: int) -> PackedStringArray
    func _get_return_icon_type() -> enum VisualShaderNode.PortType
    func _is_available(mode: enum Shader.Mode, type: enum VisualShader.Type) -> bool
    func _is_highend() -> bool

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeDerivativeFunc

  class VisualShaderNodeDerivativeFunc extends VisualShaderNode:

    enum Function {
      FUNC_SUM = 0,
      FUNC_X = 1,
      FUNC_Y = 2,
      FUNC_MAX = 3,
    }

    enum OpType {
      OP_TYPE_SCALAR = 0,
      OP_TYPE_VECTOR_2D = 1,
      OP_TYPE_VECTOR_3D = 2,
      OP_TYPE_VECTOR_4D = 3,
      OP_TYPE_MAX = 4,
    }

    enum Precision {
      PRECISION_NONE = 0,
      PRECISION_COARSE = 1,
      PRECISION_FINE = 2,
      PRECISION_MAX = 3,
    }

    var function: enum Function = FUNC_SUM
    var op_type: enum OpType = OP_TYPE_SCALAR
    var precision: enum Precision = PRECISION_NONE

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeDeterminant

  class VisualShaderNodeDeterminant extends VisualShaderNode:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeDistanceFade

  class VisualShaderNodeDistanceFade extends VisualShaderNode:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeDotProduct

  class VisualShaderNodeDotProduct extends VisualShaderNode:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeFloatFunc

  class VisualShaderNodeFloatFunc extends VisualShaderNode:

    enum Function {
      FUNC_SIN = 0,
      FUNC_COS = 1,
      FUNC_TAN = 2,
      FUNC_ASIN = 3,
      FUNC_ACOS = 4,
      FUNC_ATAN = 5,
      FUNC_SINH = 6,
      FUNC_COSH = 7,
      FUNC_TANH = 8,
      FUNC_LOG = 9,
      FUNC_EXP = 10,
      FUNC_SQRT = 11,
      FUNC_ABS = 12,
      FUNC_SIGN = 13,
      FUNC_FLOOR = 14,
      FUNC_ROUND = 15,
      FUNC_CEIL = 16,
      FUNC_FRACT = 17,
      FUNC_SATURATE = 18,
      FUNC_NEGATE = 19,
      FUNC_ACOSH = 20,
      FUNC_ASINH = 21,
      FUNC_ATANH = 22,
      FUNC_DEGREES = 23,
      FUNC_EXP2 = 24,
      FUNC_INVERSE_SQRT = 25,
      FUNC_LOG2 = 26,
      FUNC_RADIANS = 27,
      FUNC_RECIPROCAL = 28,
      FUNC_ROUNDEVEN = 29,
      FUNC_TRUNC = 30,
      FUNC_ONEMINUS = 31,
      FUNC_MAX = 32,
    }

    var function: enum Function = FUNC_SIGN

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeFloatOp

  class VisualShaderNodeFloatOp extends VisualShaderNode:

    enum Operator {
      OP_ADD = 0,
      OP_SUB = 1,
      OP_MUL = 2,
      OP_DIV = 3,
      OP_MOD = 4,
      OP_POW = 5,
      OP_MAX = 6,
      OP_MIN = 7,
      OP_ATAN2 = 8,
      OP_STEP = 9,
      OP_ENUM_SIZE = 10,
    }

    var operator: enum Operator = OP_ADD

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeFresnel

  class VisualShaderNodeFresnel extends VisualShaderNode:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeIf

  class VisualShaderNodeIf extends VisualShaderNode:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeInput

  class VisualShaderNodeInput extends VisualShaderNode:

    var input_name: String = "[None]"

    signal input_type_changed()

    func get_input_real_name() -> String

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeIntFunc

  class VisualShaderNodeIntFunc extends VisualShaderNode:

    enum Function {
      FUNC_ABS = 0,
      FUNC_NEGATE = 1,
      FUNC_SIGN = 2,
      FUNC_BITWISE_NOT = 3,
      FUNC_MAX = 4,
    }

    var function: enum Function = FUNC_SIGN

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeIntOp

  class VisualShaderNodeIntOp extends VisualShaderNode:

    enum Operator {
      OP_ADD = 0,
      OP_SUB = 1,
      OP_MUL = 2,
      OP_DIV = 3,
      OP_MOD = 4,
      OP_MAX = 5,
      OP_MIN = 6,
      OP_BITWISE_AND = 7,
      OP_BITWISE_OR = 8,
      OP_BITWISE_XOR = 9,
      OP_BITWISE_LEFT_SHIFT = 10,
      OP_BITWISE_RIGHT_SHIFT = 11,
      OP_ENUM_SIZE = 12,
    }

    var operator: enum Operator = OP_ADD

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeIs

  class VisualShaderNodeIs extends VisualShaderNode:

    enum Function {
      FUNC_IS_INF = 0,
      FUNC_IS_NAN = 1,
      FUNC_MAX = 2,
    }

    var function: enum Function = FUNC_IS_INF

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeLinearSceneDepth

  class VisualShaderNodeLinearSceneDepth extends VisualShaderNode:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeMix

  class VisualShaderNodeMix extends VisualShaderNode:

    enum OpType {
      OP_TYPE_SCALAR = 0,
      OP_TYPE_VECTOR_2D = 1,
      OP_TYPE_VECTOR_2D_SCALAR = 2,
      OP_TYPE_VECTOR_3D = 3,
      OP_TYPE_VECTOR_3D_SCALAR = 4,
      OP_TYPE_VECTOR_4D = 5,
      OP_TYPE_VECTOR_4D_SCALAR = 6,
      OP_TYPE_MAX = 7,
    }

    var op_type: enum OpType = OP_TYPE_SCALAR

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeMultiplyAdd

  class VisualShaderNodeMultiplyAdd extends VisualShaderNode:

    enum OpType {
      OP_TYPE_SCALAR = 0,
      OP_TYPE_VECTOR_2D = 1,
      OP_TYPE_VECTOR_3D = 2,
      OP_TYPE_VECTOR_4D = 3,
      OP_TYPE_MAX = 4,
    }

    var op_type: enum OpType = OP_TYPE_SCALAR

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeOuterProduct

  class VisualShaderNodeOuterProduct extends VisualShaderNode:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeOutput (abstract)

  class VisualShaderNodeOutput extends VisualShaderNode:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeOutput < VisualShaderNodeParticleOutput

  class VisualShaderNodeParticleOutput extends VisualShaderNodeOutput:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeParameter (abstract)

  class VisualShaderNodeParameter extends VisualShaderNode:

    enum Qualifier {
      QUAL_NONE = 0,
      QUAL_GLOBAL = 1,
      QUAL_INSTANCE = 2,
      QUAL_MAX = 3,
    }

    var parameter_name: String = ""
    var qualifier: enum Qualifier = QUAL_NONE

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeParameter < VisualShaderNodeBooleanParameter

  class VisualShaderNodeBooleanParameter extends VisualShaderNodeParameter:

    var default_value: bool = false
    var default_value_enabled: bool = false

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeParameter < VisualShaderNodeColorParameter

  class VisualShaderNodeColorParameter extends VisualShaderNodeParameter:

    var default_value: Color = Color(1, 1, 1, 1)
    var default_value_enabled: bool = false

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeParameter < VisualShaderNodeFloatParameter

  class VisualShaderNodeFloatParameter extends VisualShaderNodeParameter:

    enum Hint {
      HINT_NONE = 0,
      HINT_RANGE = 1,
      HINT_RANGE_STEP = 2,
      HINT_MAX = 3,
    }

    var default_value: float = 0.0
    var default_value_enabled: bool = false
    var hint: enum Hint = HINT_NONE
    var max: float = 1.0
    var min: float = 0.0
    var step: float = 0.1

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeParameter < VisualShaderNodeIntParameter

  class VisualShaderNodeIntParameter extends VisualShaderNodeParameter:

    enum Hint {
      HINT_NONE = 0,
      HINT_RANGE = 1,
      HINT_RANGE_STEP = 2,
      HINT_MAX = 3,
    }

    var default_value: int = 0
    var default_value_enabled: bool = false
    var hint: enum Hint = HINT_NONE
    var max: int = 100
    var min: int = 0
    var step: int = 1

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeParameter < VisualShaderNodeTextureParameter (abstract)

  class VisualShaderNodeTextureParameter extends VisualShaderNodeParameter:

    enum ColorDefault {
      COLOR_DEFAULT_WHITE = 0,
      COLOR_DEFAULT_BLACK = 1,
      COLOR_DEFAULT_TRANSPARENT = 2,
      COLOR_DEFAULT_MAX = 3,
    }

    enum TextureFilter {
      FILTER_DEFAULT = 0,
      FILTER_NEAREST = 1,
      FILTER_LINEAR = 2,
      FILTER_NEAREST_MIPMAP = 3,
      FILTER_LINEAR_MIPMAP = 4,
      FILTER_NEAREST_MIPMAP_ANISOTROPIC = 5,
      FILTER_LINEAR_MIPMAP_ANISOTROPIC = 6,
      FILTER_MAX = 7,
    }

    enum TextureRepeat {
      REPEAT_DEFAULT = 0,
      REPEAT_ENABLED = 1,
      REPEAT_DISABLED = 2,
      REPEAT_MAX = 3,
    }

    enum TextureSource {
      SOURCE_NONE = 0,
      SOURCE_SCREEN = 1,
      SOURCE_DEPTH = 2,
      SOURCE_NORMAL_ROUGHNESS = 3,
      SOURCE_MAX = 4,
    }

    enum TextureType {
      TYPE_DATA = 0,
      TYPE_COLOR = 1,
      TYPE_NORMAL_MAP = 2,
      TYPE_ANISOTROPY = 3,
      TYPE_MAX = 4,
    }

    var color_default: enum ColorDefault = COLOR_DEFAULT_WHITE
    var texture_filter: enum TextureFilter = FILTER_DEFAULT
    var texture_repeat: enum TextureRepeat = REPEAT_DEFAULT
    var texture_source: enum TextureSource = SOURCE_NONE
    var texture_type: enum TextureType = TYPE_DATA

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeParameter < VisualShaderNodeTextureParameter < VisualShaderNodeCubemapParameter

  class VisualShaderNodeCubemapParameter extends VisualShaderNodeTextureParameter:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeParameter < VisualShaderNodeTextureParameter < VisualShaderNodeTexture2DArrayParameter

  class VisualShaderNodeTexture2DArrayParameter extends VisualShaderNodeTextureParameter:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeParameter < VisualShaderNodeTextureParameter < VisualShaderNodeTexture2DParameter

  class VisualShaderNodeTexture2DParameter extends VisualShaderNodeTextureParameter:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeParameter < VisualShaderNodeTextureParameter < VisualShaderNodeTexture3DParameter

  class VisualShaderNodeTexture3DParameter extends VisualShaderNodeTextureParameter:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeParameter < VisualShaderNodeTextureParameter < VisualShaderNodeTextureParameterTriplanar

  class VisualShaderNodeTextureParameterTriplanar extends VisualShaderNodeTextureParameter:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeParameter < VisualShaderNodeTransformParameter

  class VisualShaderNodeTransformParameter extends VisualShaderNodeParameter:

    var default_value: Transform3D = Transform3D(Vector3(1, 0, 0), Vector3(0, 1, 0), Vector3(0, 0, 1), Vector3(0, 0, 0))
    var default_value_enabled: bool = false

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeParameter < VisualShaderNodeUIntParameter

  class VisualShaderNodeUIntParameter extends VisualShaderNodeParameter:

    var default_value: int = 0
    var default_value_enabled: bool = false

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeParameter < VisualShaderNodeVec2Parameter

  class VisualShaderNodeVec2Parameter extends VisualShaderNodeParameter:

    var default_value: Vector2 = Vector2(0, 0)
    var default_value_enabled: bool = false

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeParameter < VisualShaderNodeVec3Parameter

  class VisualShaderNodeVec3Parameter extends VisualShaderNodeParameter:

    var default_value: Vector3 = Vector3(0, 0, 0)
    var default_value_enabled: bool = false

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeParameter < VisualShaderNodeVec4Parameter

  class VisualShaderNodeVec4Parameter extends VisualShaderNodeParameter:

    var default_value: Vector4 = Vector4(0, 0, 0, 0)
    var default_value_enabled: bool = false

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeParameterRef

  class VisualShaderNodeParameterRef extends VisualShaderNode:

    var parameter_name: String = "[None]"

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeParticleAccelerator

  class VisualShaderNodeParticleAccelerator extends VisualShaderNode:

    enum Mode {
      MODE_LINEAR = 0,
      MODE_RADIAL = 1,
      MODE_TANGENTIAL = 2,
      MODE_MAX = 3,
    }

    var mode: enum Mode = MODE_LINEAR

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeParticleConeVelocity

  class VisualShaderNodeParticleConeVelocity extends VisualShaderNode:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeParticleEmit

  class VisualShaderNodeParticleEmit extends VisualShaderNode:

    enum EmitFlags {
      EMIT_FLAG_POSITION = 1,
      EMIT_FLAG_ROT_SCALE = 2,
      EMIT_FLAG_VELOCITY = 4,
      EMIT_FLAG_COLOR = 8,
      EMIT_FLAG_CUSTOM = 16,
    }

    var flags: enum EmitFlags = EMIT_FLAG_POSITION & EMIT_FLAG_ROT_SCALE & EMIT_FLAG_VELOCITY & EMIT_FLAG_COLOR & EMIT_FLAG_CUSTOM

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeParticleEmitter (abstract)

  class VisualShaderNodeParticleEmitter extends VisualShaderNode:

    var mode_2d: bool = false

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeParticleEmitter < VisualShaderNodeParticleBoxEmitter

  class VisualShaderNodeParticleBoxEmitter extends VisualShaderNodeParticleEmitter:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeParticleEmitter < VisualShaderNodeParticleMeshEmitter

  class VisualShaderNodeParticleMeshEmitter extends VisualShaderNodeParticleEmitter:

    var mesh: Mesh
    var surface_index: int = 0
    var use_all_surfaces: bool = true

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeParticleEmitter < VisualShaderNodeParticleRingEmitter

  class VisualShaderNodeParticleRingEmitter extends VisualShaderNodeParticleEmitter:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeParticleEmitter < VisualShaderNodeParticleSphereEmitter

  class VisualShaderNodeParticleSphereEmitter extends VisualShaderNodeParticleEmitter:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeParticleMultiplyByAxisAngle

  class VisualShaderNodeParticleMultiplyByAxisAngle extends VisualShaderNode:

    var degrees_mode: bool = true

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeParticleRandomness

  class VisualShaderNodeParticleRandomness extends VisualShaderNode:

    enum OpType {
      OP_TYPE_SCALAR = 0,
      OP_TYPE_VECTOR_2D = 1,
      OP_TYPE_VECTOR_3D = 2,
      OP_TYPE_VECTOR_4D = 3,
      OP_TYPE_MAX = 4,
    }

    var op_type: enum OpType = OP_TYPE_SCALAR

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeProximityFade

  class VisualShaderNodeProximityFade extends VisualShaderNode:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeRandomRange

  class VisualShaderNodeRandomRange extends VisualShaderNode:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeRemap

  class VisualShaderNodeRemap extends VisualShaderNode:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeResizableBase (abstract)

  class VisualShaderNodeResizableBase extends VisualShaderNode:

    var size: Vector2 = Vector2(0, 0)

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeResizableBase < VisualShaderNodeComment

  class VisualShaderNodeComment extends VisualShaderNodeResizableBase:

    var description: String = ""
    var title: String = "Comment"

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeResizableBase < VisualShaderNodeCurveTexture

  class VisualShaderNodeCurveTexture extends VisualShaderNodeResizableBase:

    var texture: CurveTexture

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeResizableBase < VisualShaderNodeCurveXYZTexture

  class VisualShaderNodeCurveXYZTexture extends VisualShaderNodeResizableBase:

    var texture: CurveXYZTexture

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeResizableBase < VisualShaderNodeGroupBase (abstract)

  class VisualShaderNodeGroupBase extends VisualShaderNodeResizableBase:

    func add_input_port(id: int, type: int, name: String)
    func add_output_port(id: int, type: int, name: String)
    func clear_input_ports()
    func clear_output_ports()
    func get_free_input_port_id() -> int
    func get_free_output_port_id() -> int
    func get_input_port_count() -> int
    func get_inputs() -> String
    func get_output_port_count() -> int
    func get_outputs() -> String
    func has_input_port(id: int) -> bool
    func has_output_port(id: int) -> bool
    func is_valid_port_name(name: String) -> bool
    func remove_input_port(id: int)
    func remove_output_port(id: int)
    func set_input_port_name(id: int, name: String)
    func set_input_port_type(id: int, type: int)
    func set_inputs(inputs: String)
    func set_output_port_name(id: int, name: String)
    func set_output_port_type(id: int, type: int)
    func set_outputs(outputs: String)

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeResizableBase < VisualShaderNodeGroupBase < VisualShaderNodeExpression

  class VisualShaderNodeExpression extends VisualShaderNodeGroupBase:

    var expression: String = ""

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeResizableBase < VisualShaderNodeGroupBase < VisualShaderNodeExpression < VisualShaderNodeGlobalExpression

  class VisualShaderNodeGlobalExpression extends VisualShaderNodeExpression:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeRotationByAxis

  class VisualShaderNodeRotationByAxis extends VisualShaderNode:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeSample3D (abstract)

  class VisualShaderNodeSample3D extends VisualShaderNode:

    enum Source {
      SOURCE_TEXTURE = 0,
      SOURCE_PORT = 1,
      SOURCE_MAX = 2,
    }

    var source: enum Source = SOURCE_TEXTURE

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeSample3D < VisualShaderNodeTexture2DArray

  class VisualShaderNodeTexture2DArray extends VisualShaderNodeSample3D:

    var texture_array: Texture2DArray

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeSample3D < VisualShaderNodeTexture3D

  class VisualShaderNodeTexture3D extends VisualShaderNodeSample3D:

    var texture: Texture3D

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeScreenNormalWorldSpace

  class VisualShaderNodeScreenNormalWorldSpace extends VisualShaderNode:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeScreenUVToSDF

  class VisualShaderNodeScreenUVToSDF extends VisualShaderNode:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeSDFRaymarch

  class VisualShaderNodeSDFRaymarch extends VisualShaderNode:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeSDFToScreenUV

  class VisualShaderNodeSDFToScreenUV extends VisualShaderNode:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeSmoothStep

  class VisualShaderNodeSmoothStep extends VisualShaderNode:

    enum OpType {
      OP_TYPE_SCALAR = 0,
      OP_TYPE_VECTOR_2D = 1,
      OP_TYPE_VECTOR_2D_SCALAR = 2,
      OP_TYPE_VECTOR_3D = 3,
      OP_TYPE_VECTOR_3D_SCALAR = 4,
      OP_TYPE_VECTOR_4D = 5,
      OP_TYPE_VECTOR_4D_SCALAR = 6,
      OP_TYPE_MAX = 7,
    }

    var op_type: enum OpType = OP_TYPE_SCALAR

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeStep

  class VisualShaderNodeStep extends VisualShaderNode:

    enum OpType {
      OP_TYPE_SCALAR = 0,
      OP_TYPE_VECTOR_2D = 1,
      OP_TYPE_VECTOR_2D_SCALAR = 2,
      OP_TYPE_VECTOR_3D = 3,
      OP_TYPE_VECTOR_3D_SCALAR = 4,
      OP_TYPE_VECTOR_4D = 5,
      OP_TYPE_VECTOR_4D_SCALAR = 6,
      OP_TYPE_MAX = 7,
    }

    var op_type: enum OpType = OP_TYPE_SCALAR

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeSwitch

  class VisualShaderNodeSwitch extends VisualShaderNode:

    enum OpType {
      OP_TYPE_FLOAT = 0,
      OP_TYPE_INT = 1,
      OP_TYPE_UINT = 2,
      OP_TYPE_VECTOR_2D = 3,
      OP_TYPE_VECTOR_3D = 4,
      OP_TYPE_VECTOR_4D = 5,
      OP_TYPE_BOOLEAN = 6,
      OP_TYPE_TRANSFORM = 7,
      OP_TYPE_MAX = 8,
    }

    var op_type: enum OpType = OP_TYPE_FLOAT

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeTexture

  class VisualShaderNodeTexture extends VisualShaderNode:

    enum Source {
      SOURCE_TEXTURE = 0,
      SOURCE_SCREEN = 1,
      SOURCE_2D_TEXTURE = 2,
      SOURCE_2D_NORMAL = 3,
      SOURCE_DEPTH = 4,
      SOURCE_PORT = 5,
      SOURCE_3D_NORMAL = 6,
      SOURCE_ROUGHNESS = 7,
      SOURCE_MAX = 8,
    }

    enum TextureType {
      TYPE_DATA = 0,
      TYPE_COLOR = 1,
      TYPE_NORMAL_MAP = 2,
      TYPE_MAX = 3,
    }

    var source: enum Source = SOURCE_TEXTURE
    var texture: Texture2D
    var texture_type: enum TextureType = TYPE_DATA

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeTextureSDF

  class VisualShaderNodeTextureSDF extends VisualShaderNode:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeTextureSDFNormal

  class VisualShaderNodeTextureSDFNormal extends VisualShaderNode:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeTransformCompose

  class VisualShaderNodeTransformCompose extends VisualShaderNode:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeTransformDecompose

  class VisualShaderNodeTransformDecompose extends VisualShaderNode:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeTransformFunc

  class VisualShaderNodeTransformFunc extends VisualShaderNode:

    enum Function {
      FUNC_INVERSE = 0,
      FUNC_TRANSPOSE = 1,
      FUNC_MAX = 2,
    }

    var function: enum Function = FUNC_INVERSE

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeTransformOp

  class VisualShaderNodeTransformOp extends VisualShaderNode:

    enum Operator {
      OP_AxB = 0,
      OP_BxA = 1,
      OP_AxB_COMP = 2,
      OP_BxA_COMP = 3,
      OP_ADD = 4,
      OP_A_MINUS_B = 5,
      OP_B_MINUS_A = 6,
      OP_A_DIV_B = 7,
      OP_B_DIV_A = 8,
      OP_MAX = 9,
    }

    var operator: enum Operator = OP_AxB

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeTransformVecMult

  class VisualShaderNodeTransformVecMult extends VisualShaderNode:

    enum Operator {
      OP_AxB = 0,
      OP_BxA = 1,
      OP_3x3_AxB = 2,
      OP_3x3_BxA = 3,
      OP_MAX = 4,
    }

    var operator: enum Operator = OP_AxB

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeUIntFunc

  class VisualShaderNodeUIntFunc extends VisualShaderNode:

    enum Function {
      FUNC_NEGATE = 0,
      FUNC_BITWISE_NOT = 1,
      FUNC_MAX = 2,
    }

    var function: enum Function = FUNC_NEGATE

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeUIntOp

  class VisualShaderNodeUIntOp extends VisualShaderNode:

    enum Operator {
      OP_ADD = 0,
      OP_SUB = 1,
      OP_MUL = 2,
      OP_DIV = 3,
      OP_MOD = 4,
      OP_MAX = 5,
      OP_MIN = 6,
      OP_BITWISE_AND = 7,
      OP_BITWISE_OR = 8,
      OP_BITWISE_XOR = 9,
      OP_BITWISE_LEFT_SHIFT = 10,
      OP_BITWISE_RIGHT_SHIFT = 11,
      OP_ENUM_SIZE = 12,
    }

    var operator: enum Operator = OP_ADD

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeUVFunc

  class VisualShaderNodeUVFunc extends VisualShaderNode:

    enum Function {
      FUNC_PANNING = 0,
      FUNC_SCALING = 1,
      FUNC_MAX = 2,
    }

    var function: enum Function = FUNC_PANNING

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeUVPolarCoord

  class VisualShaderNodeUVPolarCoord extends VisualShaderNode:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeVarying (abstract)

  class VisualShaderNodeVarying extends VisualShaderNode:

    var varying_name: String = "[None]"
    var varying_type: enum VisualShader.VaryingType = VisualShader.VARYING_TYPE_FLOAT

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeVarying < VisualShaderNodeVaryingGetter

  class VisualShaderNodeVaryingGetter extends VisualShaderNodeVarying:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeVarying < VisualShaderNodeVaryingSetter

  class VisualShaderNodeVaryingSetter extends VisualShaderNodeVarying:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeVectorBase (abstract)

  class VisualShaderNodeVectorBase extends VisualShaderNode:

    enum OpType {
      OP_TYPE_VECTOR_2D = 0,
      OP_TYPE_VECTOR_3D = 1,
      OP_TYPE_VECTOR_4D = 2,
      OP_TYPE_MAX = 3,
    }

    var op_type: enum OpType = OP_TYPE_VECTOR_3D

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeVectorBase < VisualShaderNodeFaceForward

  class VisualShaderNodeFaceForward extends VisualShaderNodeVectorBase:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeVectorBase < VisualShaderNodeVectorCompose

  class VisualShaderNodeVectorCompose extends VisualShaderNodeVectorBase:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeVectorBase < VisualShaderNodeVectorDecompose

  class VisualShaderNodeVectorDecompose extends VisualShaderNodeVectorBase:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeVectorBase < VisualShaderNodeVectorDistance

  class VisualShaderNodeVectorDistance extends VisualShaderNodeVectorBase:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeVectorBase < VisualShaderNodeVectorFunc

  class VisualShaderNodeVectorFunc extends VisualShaderNodeVectorBase:

    enum Function {
      FUNC_NORMALIZE = 0,
      FUNC_SATURATE = 1,
      FUNC_NEGATE = 2,
      FUNC_RECIPROCAL = 3,
      FUNC_ABS = 4,
      FUNC_ACOS = 5,
      FUNC_ACOSH = 6,
      FUNC_ASIN = 7,
      FUNC_ASINH = 8,
      FUNC_ATAN = 9,
      FUNC_ATANH = 10,
      FUNC_CEIL = 11,
      FUNC_COS = 12,
      FUNC_COSH = 13,
      FUNC_DEGREES = 14,
      FUNC_EXP = 15,
      FUNC_EXP2 = 16,
      FUNC_FLOOR = 17,
      FUNC_FRACT = 18,
      FUNC_INVERSE_SQRT = 19,
      FUNC_LOG = 20,
      FUNC_LOG2 = 21,
      FUNC_RADIANS = 22,
      FUNC_ROUND = 23,
      FUNC_ROUNDEVEN = 24,
      FUNC_SIGN = 25,
      FUNC_SIN = 26,
      FUNC_SINH = 27,
      FUNC_SQRT = 28,
      FUNC_TAN = 29,
      FUNC_TANH = 30,
      FUNC_TRUNC = 31,
      FUNC_ONEMINUS = 32,
      FUNC_MAX = 33,
    }

    var function: enum Function = FUNC_NORMALIZE

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeVectorBase < VisualShaderNodeVectorLen

  class VisualShaderNodeVectorLen extends VisualShaderNodeVectorBase:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeVectorBase < VisualShaderNodeVectorOp

  class VisualShaderNodeVectorOp extends VisualShaderNodeVectorBase:

    enum Operator {
      OP_ADD = 0,
      OP_SUB = 1,
      OP_MUL = 2,
      OP_DIV = 3,
      OP_MOD = 4,
      OP_POW = 5,
      OP_MAX = 6,
      OP_MIN = 7,
      OP_CROSS = 8,
      OP_ATAN2 = 9,
      OP_REFLECT = 10,
      OP_STEP = 11,
      OP_ENUM_SIZE = 12,
    }

    var operator: enum Operator = OP_ADD

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeVectorBase < VisualShaderNodeVectorRefract

  class VisualShaderNodeVectorRefract extends VisualShaderNodeVectorBase:

    pass 

# Object < RefCounted < Resource < VisualShaderNode < VisualShaderNodeWorldPositionFromDepth

  class VisualShaderNodeWorldPositionFromDepth extends VisualShaderNode:

    pass 

# Object < RefCounted < Resource < VoxelGIData

  class VoxelGIData extends Resource:

    var bias: float = 1.5
    var dynamic_range: float = 2.0
    var energy: float = 1.0
    var interior: bool = false
    var normal_bias: float = 0.0
    var propagation: float = 0.5
    var use_two_bounces: bool = true

    func allocate(to_cell_xform: Transform3D, aabb: AABB, octree_size: Vector3, octree_cells: PackedByteArray, data_cells: PackedByteArray, distance_field: PackedByteArray, level_counts: PackedInt32Array)
    func get_bounds() -> AABB
    func get_data_cells() -> PackedByteArray
    func get_level_counts() -> PackedInt32Array
    func get_octree_cells() -> PackedByteArray
    func get_octree_size() -> Vector3
    func get_to_cell_xform() -> Transform3D

# Object < RefCounted < Resource < World2D

  class World2D extends Resource:

    var canvas: RID
    var direct_space_state: PhysicsDirectSpaceState2D
    var navigation_map: RID
    var space: RID

# Object < RefCounted < Resource < World3D

  class World3D extends Resource:

    var camera_attributes: CameraAttributes
    var direct_space_state: PhysicsDirectSpaceState3D
    var environment: Environment
    var fallback_environment: Environment
    var navigation_map: RID
    var scenario: RID
    var space: RID

# Object < RefCounted < Resource < X509Certificate

  class X509Certificate extends Resource:

    func load(path: String) -> enum Error
    func load_from_string(string: String) -> enum Error
    func save(path: String) -> enum Error
    func save_to_string() -> String

# Object < RefCounted < AESContext

  class AESContext extends RefCounted:

    enum Mode {
      MODE_ECB_ENCRYPT = 0,
      MODE_ECB_DECRYPT = 1,
      MODE_CBC_ENCRYPT = 2,
      MODE_CBC_DECRYPT = 3,
      MODE_MAX = 4,
    }

    func finish()
    func get_iv_state() -> PackedByteArray
    func start(mode: enum Mode, key: PackedByteArray, iv: PackedByteArray = PackedByteArray()) -> enum Error
    func update(src: PackedByteArray) -> PackedByteArray

# Object < RefCounted < AStar2D

  class AStar2D extends RefCounted:

    func add_point(id: int, position: Vector2, weight_scale: float = 1.0)
    func are_points_connected(id: int, to_id: int, bidirectional: bool = true) -> bool
    func clear()
    func connect_points(id: int, to_id: int, bidirectional: bool = true)
    func disconnect_points(id: int, to_id: int, bidirectional: bool = true)
    func get_available_point_id() -> int
    func get_closest_point(to_position: Vector2, include_disabled: bool = false) -> int
    func get_closest_position_in_segment(to_position: Vector2) -> Vector2
    func get_id_path(from_id: int, to_id: int) -> PackedInt64Array
    func get_point_capacity() -> int
    func get_point_connections(id: int) -> PackedInt64Array
    func get_point_count() -> int
    func get_point_ids() -> PackedInt64Array
    func get_point_path(from_id: int, to_id: int) -> PackedVector2Array
    func get_point_position(id: int) -> Vector2
    func get_point_weight_scale(id: int) -> float
    func has_point(id: int) -> bool
    func is_point_disabled(id: int) -> bool
    func remove_point(id: int)
    func reserve_space(num_nodes: int)
    func set_point_disabled(id: int, disabled: bool = true)
    func set_point_position(id: int, position: Vector2)
    func set_point_weight_scale(id: int, weight_scale: float)

    func _compute_cost(from_id: int, to_id: int) -> float
    func _estimate_cost(from_id: int, to_id: int) -> float

# Object < RefCounted < AStar3D

  class AStar3D extends RefCounted:

    func add_point(id: int, position: Vector3, weight_scale: float = 1.0)
    func are_points_connected(id: int, to_id: int, bidirectional: bool = true) -> bool
    func clear()
    func connect_points(id: int, to_id: int, bidirectional: bool = true)
    func disconnect_points(id: int, to_id: int, bidirectional: bool = true)
    func get_available_point_id() -> int
    func get_closest_point(to_position: Vector3, include_disabled: bool = false) -> int
    func get_closest_position_in_segment(to_position: Vector3) -> Vector3
    func get_id_path(from_id: int, to_id: int) -> PackedInt64Array
    func get_point_capacity() -> int
    func get_point_connections(id: int) -> PackedInt64Array
    func get_point_count() -> int
    func get_point_ids() -> PackedInt64Array
    func get_point_path(from_id: int, to_id: int) -> PackedVector3Array
    func get_point_position(id: int) -> Vector3
    func get_point_weight_scale(id: int) -> float
    func has_point(id: int) -> bool
    func is_point_disabled(id: int) -> bool
    func remove_point(id: int)
    func reserve_space(num_nodes: int)
    func set_point_disabled(id: int, disabled: bool = true)
    func set_point_position(id: int, position: Vector3)
    func set_point_weight_scale(id: int, weight_scale: float)

    func _compute_cost(from_id: int, to_id: int) -> float
    func _estimate_cost(from_id: int, to_id: int) -> float

# Object < RefCounted < AStarGrid2D

  class AStarGrid2D extends RefCounted:

    enum DiagonalMode {
      DIAGONAL_MODE_ALWAYS = 0,
      DIAGONAL_MODE_NEVER = 1,
      DIAGONAL_MODE_AT_LEAST_ONE_WALKABLE = 2,
      DIAGONAL_MODE_ONLY_IF_NO_OBSTACLES = 3,
      DIAGONAL_MODE_MAX = 4,
    }

    enum Heuristic {
      HEURISTIC_EUCLIDEAN = 0,
      HEURISTIC_MANHATTAN = 1,
      HEURISTIC_OCTILE = 2,
      HEURISTIC_CHEBYSHEV = 3,
      HEURISTIC_MAX = 4,
    }

    var cell_size: Vector2 = Vector2(1, 1)
    var default_compute_heuristic: enum Heuristic = HEURISTIC_EUCLIDEAN
    var default_estimate_heuristic: enum Heuristic = HEURISTIC_EUCLIDEAN
    var diagonal_mode: enum DiagonalMode = DIAGONAL_MODE_ALWAYS
    var jumping_enabled: bool = false
    var offset: Vector2 = Vector2(0, 0)
    var region: Rect2i = Rect2i(0, 0, 0, 0)
    var size: Vector2i = Vector2i(0, 0)

    func clear()
    func fill_solid_region(region: Rect2i, solid: bool = true)
    func fill_weight_scale_region(region: Rect2i, weight_scale: float)
    func get_id_path(from_id: Vector2i, to_id: Vector2i) -> Array[Vector2i]
    func get_point_path(from_id: Vector2i, to_id: Vector2i) -> PackedVector2Array
    func get_point_position(id: Vector2i) -> Vector2
    func get_point_weight_scale(id: Vector2i) -> float
    func is_dirty() -> bool
    func is_in_bounds(x: int, y: int) -> bool
    func is_in_boundsv(id: Vector2i) -> bool
    func is_point_solid(id: Vector2i) -> bool
    func set_point_solid(id: Vector2i, solid: bool = true)
    func set_point_weight_scale(id: Vector2i, weight_scale: float)
    func update()

    func _compute_cost(from_id: Vector2i, to_id: Vector2i) -> float
    func _estimate_cost(from_id: Vector2i, to_id: Vector2i) -> float

# Object < RefCounted < AudioEffectInstance

  class AudioEffectInstance extends RefCounted:

    func _process_silence() -> bool

# Object < RefCounted < AudioEffectInstance < AudioEffectSpectrumAnalyzerInstance (abstract)

  class AudioEffectSpectrumAnalyzerInstance extends AudioEffectInstance:

    enum MagnitudeMode {
      MAGNITUDE_AVERAGE = 0,
      MAGNITUDE_MAX = 1,
    }

    func get_magnitude_for_frequency_range(from_hz: float, to_hz: float, mode: enum MagnitudeMode = MAGNITUDE_MAX) -> Vector2

# Object < RefCounted < AudioStreamPlayback

  class AudioStreamPlayback extends RefCounted:

    func _get_loop_count() -> int
    func _get_playback_position() -> float
    func _is_playing() -> bool
    func _seek(position: float)
    func _start(from_pos: float)
    func _stop()
    func _tag_used_streams()

# Object < RefCounted < AudioStreamPlayback < AudioStreamPlaybackPolyphonic (abstract)

  class AudioStreamPlaybackPolyphonic extends AudioStreamPlayback:

    const INVALID_ID = -1

    func is_stream_playing(stream: int) -> bool
    func play_stream(stream: AudioStream, from_offset: float = 0, volume_db: float = 0, pitch_scale: float = 1.0) -> int
    func set_stream_pitch_scale(stream: int, pitch_scale: float)
    func set_stream_volume(stream: int, volume_db: float)
    func stop_stream(stream: int)

# Object < RefCounted < AudioStreamPlayback < AudioStreamPlaybackResampled

  class AudioStreamPlaybackResampled extends AudioStreamPlayback:

    func begin_resample()

    func _get_stream_sampling_rate() -> float

# Object < RefCounted < AudioStreamPlayback < AudioStreamPlaybackResampled < AudioStreamGeneratorPlayback (abstract)

  class AudioStreamGeneratorPlayback extends AudioStreamPlaybackResampled:

    func can_push_buffer(amount: int) -> bool
    func clear_buffer()
    func get_frames_available() -> int
    func get_skips() -> int
    func push_buffer(frames: PackedVector2Array) -> bool
    func push_frame(frame: Vector2) -> bool

# Object < RefCounted < CameraFeed

  class CameraFeed extends RefCounted:

    enum FeedDataType {
      FEED_NOIMAGE = 0,
      FEED_RGB = 1,
      FEED_YCBCR = 2,
      FEED_YCBCR_SEP = 3,
    }

    enum FeedPosition {
      FEED_UNSPECIFIED = 0,
      FEED_FRONT = 1,
      FEED_BACK = 2,
    }

    var feed_is_active: bool = false
    var feed_transform: Transform2D = Transform2D(Vector2(1, 0), Vector2(0, -1), Vector2(0, 1))

    func get_datatype() -> enum FeedDataType
    func get_id() -> int
    func get_name() -> String
    func get_position() -> enum FeedPosition

# Object < RefCounted < CharFXTransform

  class CharFXTransform extends RefCounted:

    var color: Color = Color(0, 0, 0, 1)
    var elapsed_time: float = 0.0
    var env: Dictionary = {}
    var font: RID = RID()
    var glyph_count: int = 0
    var glyph_flags: int = 0
    var glyph_index: int = 0
    var offset: Vector2 = Vector2(0, 0)
    var outline: bool = false
    var range: Vector2i = Vector2i(0, 0)
    var relative_index: int = 0
    var transform: Transform2D = Transform2D(Vector2(1, 0), Vector2(0, 1), Vector2(0, 0))
    var visible: bool = true

# Object < RefCounted < ConfigFile

  class ConfigFile extends RefCounted:

    func clear()
    func encode_to_text() -> String
    func erase_section(section: String)
    func erase_section_key(section: String, key: String)
    func get_section_keys(section: String) -> PackedStringArray
    func get_sections() -> PackedStringArray
    func get_value(section: String, key: String, default: Variant = null) -> Variant
    func has_section(section: String) -> bool
    func has_section_key(section: String, key: String) -> bool
    func load(path: String) -> enum Error
    func load_encrypted(path: String, key: PackedByteArray) -> enum Error
    func load_encrypted_pass(path: String, password: String) -> enum Error
    func parse(data: String) -> enum Error
    func save(path: String) -> enum Error
    func save_encrypted(path: String, key: PackedByteArray) -> enum Error
    func save_encrypted_pass(path: String, password: String) -> enum Error
    func set_value(section: String, key: String, value: Variant)

# Object < RefCounted < Crypto

  class Crypto extends RefCounted:

    func constant_time_compare(trusted: PackedByteArray, received: PackedByteArray) -> bool
    func decrypt(key: CryptoKey, ciphertext: PackedByteArray) -> PackedByteArray
    func encrypt(key: CryptoKey, plaintext: PackedByteArray) -> PackedByteArray
    func generate_random_bytes(size: int) -> PackedByteArray
    func generate_rsa(size: int) -> CryptoKey
    func generate_self_signed_certificate(key: CryptoKey, issuer_name: String = "CN=myserver,O=myorganisation,C=IT", not_before: String = "20140101000000", not_after: String = "20340101000000") -> X509Certificate
    func hmac_digest(hash_type: enum HashingContext.HashType, key: PackedByteArray, msg: PackedByteArray) -> PackedByteArray
    func sign(hash_type: enum HashingContext.HashType, hash: PackedByteArray, key: CryptoKey) -> PackedByteArray
    func verify(hash_type: enum HashingContext.HashType, hash: PackedByteArray, signature: PackedByteArray, key: CryptoKey) -> bool

# Object < RefCounted < DirAccess (abstract)

  class DirAccess extends RefCounted:

    static func copy_absolute(from: String, to: String, chmod_flags: int = -1) -> enum Error
    static func dir_exists_absolute(path: String) -> bool
    static func get_directories_at(path: String) -> PackedStringArray
    static func get_drive_count() -> int
    static func get_drive_name(idx: int) -> String
    static func get_files_at(path: String) -> PackedStringArray
    static func get_open_error() -> enum Error
    static func make_dir_absolute(path: String) -> enum Error
    static func make_dir_recursive_absolute(path: String) -> enum Error
    static func open(path: String) -> DirAccess
    static func remove_absolute(path: String) -> enum Error
    static func rename_absolute(from: String, to: String) -> enum Error

    var include_hidden: bool
    var include_navigational: bool

    func change_dir(to_dir: String) -> enum Error
    func copy(from: String, to: String, chmod_flags: int = -1) -> enum Error
    func current_is_dir() -> bool
    func dir_exists(path: String) -> bool
    func file_exists(path: String) -> bool
    func get_current_dir(include_drive: bool = true) -> String
    func get_current_drive() -> int
    func get_directories() -> PackedStringArray
    func get_files() -> PackedStringArray
    func get_next() -> String
    func get_space_left() -> int
    func is_case_sensitive(path: String) -> bool
    func list_dir_begin() -> enum Error
    func list_dir_end()
    func make_dir(path: String) -> enum Error
    func make_dir_recursive(path: String) -> enum Error
    func remove(path: String) -> enum Error
    func rename(from: String, to: String) -> enum Error

# Object < RefCounted < DTLSServer

  class DTLSServer extends RefCounted:

    func setup(server_options: TLSOptions) -> enum Error
    func take_connection(udp_peer: PacketPeerUDP) -> PacketPeerDTLS

# Object < RefCounted < EncodedObjectAsID

  class EncodedObjectAsID extends RefCounted:

    var object_id: int = 0

# Object < RefCounted < EngineProfiler

  class EngineProfiler extends RefCounted:

    func _add_frame(data: Array)
    func _tick(frame_time: float, process_time: float, physics_time: float, physics_frame_time: float)
    func _toggle(enable: bool, options: Array)

# Object < RefCounted < Expression

  class Expression extends RefCounted:

    func execute(inputs: Array = [], base_instance: Object = null, show_error: bool = true, const_calls_only: bool = false) -> Variant
    func get_error_text() -> String
    func has_execute_failed() -> bool
    func parse(expression: String, input_names: PackedStringArray = PackedStringArray()) -> enum Error

# Object < RefCounted < FileAccess (abstract)

  class FileAccess extends RefCounted:

    enum CompressionMode {
      COMPRESSION_FASTLZ = 0,
      COMPRESSION_DEFLATE = 1,
      COMPRESSION_ZSTD = 2,
      COMPRESSION_GZIP = 3,
      COMPRESSION_BROTLI = 4,
    }

    enum ModeFlags {
      READ = 1,
      WRITE = 2,
      READ_WRITE = 3,
      WRITE_READ = 7,
    }

    enum UnixPermissionFlags {
      UNIX_EXECUTE_OTHER = 1,
      UNIX_WRITE_OTHER = 2,
      UNIX_READ_OTHER = 4,
      UNIX_EXECUTE_GROUP = 8,
      UNIX_WRITE_GROUP = 16,
      UNIX_READ_GROUP = 32,
      UNIX_EXECUTE_OWNER = 64,
      UNIX_WRITE_OWNER = 128,
      UNIX_READ_OWNER = 256,
      UNIX_RESTRICTED_DELETE = 512,
      UNIX_SET_GROUP_ID = 1024,
      UNIX_SET_USER_ID = 2048,
    }

    static func file_exists(path: String) -> bool
    static func get_file_as_bytes(path: String) -> PackedByteArray
    static func get_file_as_string(path: String) -> String
    static func get_hidden_attribute(file: String) -> bool
    static func get_md5(path: String) -> String
    static func get_modified_time(file: String) -> int
    static func get_open_error() -> enum Error
    static func get_read_only_attribute(file: String) -> bool
    static func get_sha256(path: String) -> String
    static func get_unix_permissions(file: String) -> enum UnixPermissionFlags
    static func open(path: String, flags: enum ModeFlags) -> FileAccess
    static func open_compressed(path: String, mode_flags: enum ModeFlags, compression_mode: enum CompressionMode = COMPRESSION_FASTLZ) -> FileAccess
    static func open_encrypted(path: String, mode_flags: enum ModeFlags, key: PackedByteArray) -> FileAccess
    static func open_encrypted_with_pass(path: String, mode_flags: enum ModeFlags, pass: String) -> FileAccess
    static func set_hidden_attribute(file: String, hidden: bool) -> enum Error
    static func set_read_only_attribute(file: String, ro: bool) -> enum Error
    static func set_unix_permissions(file: String, permissions: enum UnixPermissionFlags) -> enum Error

    var big_endian: bool

    func close()
    func eof_reached() -> bool
    func flush()
    func get_16() -> int
    func get_32() -> int
    func get_64() -> int
    func get_8() -> int
    func get_as_text(skip_cr: bool = false) -> String
    func get_buffer(length: int) -> PackedByteArray
    func get_csv_line(delim: String = ",") -> PackedStringArray
    func get_double() -> float
    func get_error() -> enum Error
    func get_float() -> float
    func get_length() -> int
    func get_line() -> String
    func get_pascal_string() -> String
    func get_path() -> String
    func get_path_absolute() -> String
    func get_position() -> int
    func get_real() -> float
    func get_var(allow_objects: bool = false) -> Variant
    func is_open() -> bool
    func seek(position: int)
    func seek_end(position: int = 0)
    func store_16(value: int)
    func store_32(value: int)
    func store_64(value: int)
    func store_8(value: int)
    func store_buffer(buffer: PackedByteArray)
    func store_csv_line(values: PackedStringArray, delim: String = ",")
    func store_double(value: float)
    func store_float(value: float)
    func store_line(line: String)
    func store_pascal_string(string: String)
    func store_real(value: float)
    func store_string(string: String)
    func store_var(value: Variant, full_objects: bool = false)

# Object < RefCounted < HashingContext

  class HashingContext extends RefCounted:

    enum HashType {
      HASH_MD5 = 0,
      HASH_SHA1 = 1,
      HASH_SHA256 = 2,
    }

    func finish() -> PackedByteArray
    func start(type: enum HashType) -> enum Error
    func update(chunk: PackedByteArray) -> enum Error

# Object < RefCounted < HMACContext

  class HMACContext extends RefCounted:

    func finish() -> PackedByteArray
    func start(hash_type: enum HashingContext.HashType, key: PackedByteArray) -> enum Error
    func update(data: PackedByteArray) -> enum Error

# Object < RefCounted < HTTPClient

  class HTTPClient extends RefCounted:

    enum Method {
      METHOD_GET = 0,
      METHOD_HEAD = 1,
      METHOD_POST = 2,
      METHOD_PUT = 3,
      METHOD_DELETE = 4,
      METHOD_OPTIONS = 5,
      METHOD_TRACE = 6,
      METHOD_CONNECT = 7,
      METHOD_PATCH = 8,
      METHOD_MAX = 9,
    }

    enum ResponseCode {
      RESPONSE_CONTINUE = 100,
      RESPONSE_SWITCHING_PROTOCOLS = 101,
      RESPONSE_PROCESSING = 102,
      RESPONSE_OK = 200,
      RESPONSE_CREATED = 201,
      RESPONSE_ACCEPTED = 202,
      RESPONSE_NON_AUTHORITATIVE_INFORMATION = 203,
      RESPONSE_NO_CONTENT = 204,
      RESPONSE_RESET_CONTENT = 205,
      RESPONSE_PARTIAL_CONTENT = 206,
      RESPONSE_MULTI_STATUS = 207,
      RESPONSE_ALREADY_REPORTED = 208,
      RESPONSE_IM_USED = 226,
      RESPONSE_MULTIPLE_CHOICES = 300,
      RESPONSE_MOVED_PERMANENTLY = 301,
      RESPONSE_FOUND = 302,
      RESPONSE_SEE_OTHER = 303,
      RESPONSE_NOT_MODIFIED = 304,
      RESPONSE_USE_PROXY = 305,
      RESPONSE_SWITCH_PROXY = 306,
      RESPONSE_TEMPORARY_REDIRECT = 307,
      RESPONSE_PERMANENT_REDIRECT = 308,
      RESPONSE_BAD_REQUEST = 400,
      RESPONSE_UNAUTHORIZED = 401,
      RESPONSE_PAYMENT_REQUIRED = 402,
      RESPONSE_FORBIDDEN = 403,
      RESPONSE_NOT_FOUND = 404,
      RESPONSE_METHOD_NOT_ALLOWED = 405,
      RESPONSE_NOT_ACCEPTABLE = 406,
      RESPONSE_PROXY_AUTHENTICATION_REQUIRED = 407,
      RESPONSE_REQUEST_TIMEOUT = 408,
      RESPONSE_CONFLICT = 409,
      RESPONSE_GONE = 410,
      RESPONSE_LENGTH_REQUIRED = 411,
      RESPONSE_PRECONDITION_FAILED = 412,
      RESPONSE_REQUEST_ENTITY_TOO_LARGE = 413,
      RESPONSE_REQUEST_URI_TOO_LONG = 414,
      RESPONSE_UNSUPPORTED_MEDIA_TYPE = 415,
      RESPONSE_REQUESTED_RANGE_NOT_SATISFIABLE = 416,
      RESPONSE_EXPECTATION_FAILED = 417,
      RESPONSE_IM_A_TEAPOT = 418,
      RESPONSE_MISDIRECTED_REQUEST = 421,
      RESPONSE_UNPROCESSABLE_ENTITY = 422,
      RESPONSE_LOCKED = 423,
      RESPONSE_FAILED_DEPENDENCY = 424,
      RESPONSE_UPGRADE_REQUIRED = 426,
      RESPONSE_PRECONDITION_REQUIRED = 428,
      RESPONSE_TOO_MANY_REQUESTS = 429,
      RESPONSE_REQUEST_HEADER_FIELDS_TOO_LARGE = 431,
      RESPONSE_UNAVAILABLE_FOR_LEGAL_REASONS = 451,
      RESPONSE_INTERNAL_SERVER_ERROR = 500,
      RESPONSE_NOT_IMPLEMENTED = 501,
      RESPONSE_BAD_GATEWAY = 502,
      RESPONSE_SERVICE_UNAVAILABLE = 503,
      RESPONSE_GATEWAY_TIMEOUT = 504,
      RESPONSE_HTTP_VERSION_NOT_SUPPORTED = 505,
      RESPONSE_VARIANT_ALSO_NEGOTIATES = 506,
      RESPONSE_INSUFFICIENT_STORAGE = 507,
      RESPONSE_LOOP_DETECTED = 508,
      RESPONSE_NOT_EXTENDED = 510,
      RESPONSE_NETWORK_AUTH_REQUIRED = 511,
    }

    enum Status {
      STATUS_DISCONNECTED = 0,
      STATUS_RESOLVING = 1,
      STATUS_CANT_RESOLVE = 2,
      STATUS_CONNECTING = 3,
      STATUS_CANT_CONNECT = 4,
      STATUS_CONNECTED = 5,
      STATUS_REQUESTING = 6,
      STATUS_BODY = 7,
      STATUS_CONNECTION_ERROR = 8,
      STATUS_TLS_HANDSHAKE_ERROR = 9,
    }

    var blocking_mode_enabled: bool = false
    var connection: StreamPeer
    var read_chunk_size: int = 65536

    func close()
    func connect_to_host(host: String, port: int = -1, tls_options: TLSOptions = null) -> enum Error
    func get_response_body_length() -> int
    func get_response_code() -> int
    func get_response_headers() -> PackedStringArray
    func get_response_headers_as_dictionary() -> Dictionary
    func get_status() -> enum Status
    func has_response() -> bool
    func is_response_chunked() -> bool
    func poll() -> enum Error
    func query_string_from_dict(fields: Dictionary) -> String
    func read_response_body_chunk() -> PackedByteArray
    func request(method: enum Method, url: String, headers: PackedStringArray, body: String = "") -> enum Error
    func request_raw(method: enum Method, url: String, headers: PackedStringArray, body: PackedByteArray) -> enum Error
    func set_http_proxy(host: String, port: int)
    func set_https_proxy(host: String, port: int)

# Object < RefCounted < ImageFormatLoader (abstract)

  class ImageFormatLoader extends RefCounted:

    enum LoaderFlags {
      FLAG_NONE = 0,
      FLAG_FORCE_LINEAR = 1,
      FLAG_CONVERT_COLORS = 2,
    }

# Object < RefCounted < KinematicCollision2D

  class KinematicCollision2D extends RefCounted:

    func get_angle(up_direction: Vector2 = Vector2(0, -1)) -> float
    func get_collider() -> Object
    func get_collider_id() -> int
    func get_collider_rid() -> RID
    func get_collider_shape() -> Object
    func get_collider_shape_index() -> int
    func get_collider_velocity() -> Vector2
    func get_depth() -> float
    func get_local_shape() -> Object
    func get_normal() -> Vector2
    func get_position() -> Vector2
    func get_remainder() -> Vector2
    func get_travel() -> Vector2

# Object < RefCounted < KinematicCollision3D

  class KinematicCollision3D extends RefCounted:

    func get_angle(collision_index: int = 0, up_direction: Vector3 = Vector3(0, 1, 0)) -> float
    func get_collider(collision_index: int = 0) -> Object
    func get_collider_id(collision_index: int = 0) -> int
    func get_collider_rid(collision_index: int = 0) -> RID
    func get_collider_shape(collision_index: int = 0) -> Object
    func get_collider_shape_index(collision_index: int = 0) -> int
    func get_collider_velocity(collision_index: int = 0) -> Vector3
    func get_collision_count() -> int
    func get_depth() -> float
    func get_local_shape(collision_index: int = 0) -> Object
    func get_normal(collision_index: int = 0) -> Vector3
    func get_position(collision_index: int = 0) -> Vector3
    func get_remainder() -> Vector3
    func get_travel() -> Vector3

# Object < RefCounted < Lightmapper (abstract)

  class Lightmapper extends RefCounted:

    pass 

# Object < RefCounted < Lightmapper < LightmapperRD

  class LightmapperRD extends Lightmapper:

    pass 

# Object < RefCounted < MeshConvexDecompositionSettings

  class MeshConvexDecompositionSettings extends RefCounted:

    enum Mode {
      CONVEX_DECOMPOSITION_MODE_VOXEL = 0,
      CONVEX_DECOMPOSITION_MODE_TETRAHEDRON = 1,
    }

    var convex_hull_approximation: bool = true
    var convex_hull_downsampling: int = 4
    var max_concavity: float = 1.0
    var max_convex_hulls: int = 1
    var max_num_vertices_per_convex_hull: int = 32
    var min_volume_per_convex_hull: float = 0.0001
    var mode: enum Mode = CONVEX_DECOMPOSITION_MODE_VOXEL
    var normalize_mesh: bool = false
    var plane_downsampling: int = 4
    var project_hull_vertices: bool = true
    var resolution: int = 10000
    var revolution_axes_clipping_bias: float = 0.05
    var symmetry_planes_clipping_bias: float = 0.05

# Object < RefCounted < MeshDataTool

  class MeshDataTool extends RefCounted:

    func clear()
    func commit_to_surface(mesh: ArrayMesh, compression_flags: int = 0) -> enum Error
    func create_from_surface(mesh: ArrayMesh, surface: int) -> enum Error
    func get_edge_count() -> int
    func get_edge_faces(idx: int) -> PackedInt32Array
    func get_edge_meta(idx: int) -> Variant
    func get_edge_vertex(idx: int, vertex: int) -> int
    func get_face_count() -> int
    func get_face_edge(idx: int, edge: int) -> int
    func get_face_meta(idx: int) -> Variant
    func get_face_normal(idx: int) -> Vector3
    func get_face_vertex(idx: int, vertex: int) -> int
    func get_format() -> int
    func get_material() -> Material
    func get_vertex(idx: int) -> Vector3
    func get_vertex_bones(idx: int) -> PackedInt32Array
    func get_vertex_color(idx: int) -> Color
    func get_vertex_count() -> int
    func get_vertex_edges(idx: int) -> PackedInt32Array
    func get_vertex_faces(idx: int) -> PackedInt32Array
    func get_vertex_meta(idx: int) -> Variant
    func get_vertex_normal(idx: int) -> Vector3
    func get_vertex_tangent(idx: int) -> Plane
    func get_vertex_uv(idx: int) -> Vector2
    func get_vertex_uv2(idx: int) -> Vector2
    func get_vertex_weights(idx: int) -> PackedFloat32Array
    func set_edge_meta(idx: int, meta: Variant)
    func set_face_meta(idx: int, meta: Variant)
    func set_material(material: Material)
    func set_vertex(idx: int, vertex: Vector3)
    func set_vertex_bones(idx: int, bones: PackedInt32Array)
    func set_vertex_color(idx: int, color: Color)
    func set_vertex_meta(idx: int, meta: Variant)
    func set_vertex_normal(idx: int, normal: Vector3)
    func set_vertex_tangent(idx: int, tangent: Plane)
    func set_vertex_uv(idx: int, uv: Vector2)
    func set_vertex_uv2(idx: int, uv2: Vector2)
    func set_vertex_weights(idx: int, weights: PackedFloat32Array)

# Object < RefCounted < MultiplayerAPI (abstract)

  class MultiplayerAPI extends RefCounted:

    enum RPCMode {
      RPC_MODE_DISABLED = 0,
      RPC_MODE_ANY_PEER = 1,
      RPC_MODE_AUTHORITY = 2,
    }

    static func create_default_interface() -> MultiplayerAPI
    static func get_default_interface() -> StringName
    static func set_default_interface(interface_name: StringName)

    var multiplayer_peer: MultiplayerPeer

    signal connected_to_server()
    signal connection_failed()
    signal peer_connected(id: int)
    signal peer_disconnected(id: int)
    signal server_disconnected()

    func get_peers() -> PackedInt32Array
    func get_remote_sender_id() -> int
    func get_unique_id() -> int
    func has_multiplayer_peer() -> bool
    func is_server() -> bool
    func object_configuration_add(object: Object, configuration: Variant) -> enum Error
    func object_configuration_remove(object: Object, configuration: Variant) -> enum Error
    func poll() -> enum Error
    func rpc(peer: int, object: Object, method: StringName, arguments: Array = []) -> enum Error

# Object < RefCounted < Mutex

  class Mutex extends RefCounted:

    func lock()
    func try_lock() -> bool
    func unlock()

# Object < RefCounted < NavigationPathQueryParameters2D

  class NavigationPathQueryParameters2D extends RefCounted:

    enum PathfindingAlgorithm {
      PATHFINDING_ALGORITHM_ASTAR = 0,
    }

    enum PathMetadataFlags {
      PATH_METADATA_INCLUDE_NONE = 0,
      PATH_METADATA_INCLUDE_TYPES = 1,
      PATH_METADATA_INCLUDE_RIDS = 2,
      PATH_METADATA_INCLUDE_OWNERS = 4,
      PATH_METADATA_INCLUDE_ALL = 7,
    }

    enum PathPostProcessing {
      PATH_POSTPROCESSING_CORRIDORFUNNEL = 0,
      PATH_POSTPROCESSING_EDGECENTERED = 1,
    }

    var map: RID = RID()
    var metadata_flags: enum PathMetadataFlags = PATH_METADATA_INCLUDE_ALL
    var navigation_layers: int = 1
    var path_postprocessing: enum PathPostProcessing = PATH_POSTPROCESSING_CORRIDORFUNNEL
    var pathfinding_algorithm: enum PathfindingAlgorithm = PATHFINDING_ALGORITHM_ASTAR
    var start_position: Vector2 = Vector2(0, 0)
    var target_position: Vector2 = Vector2(0, 0)

# Object < RefCounted < NavigationPathQueryParameters3D

  class NavigationPathQueryParameters3D extends RefCounted:

    enum PathfindingAlgorithm {
      PATHFINDING_ALGORITHM_ASTAR = 0,
    }

    enum PathMetadataFlags {
      PATH_METADATA_INCLUDE_NONE = 0,
      PATH_METADATA_INCLUDE_TYPES = 1,
      PATH_METADATA_INCLUDE_RIDS = 2,
      PATH_METADATA_INCLUDE_OWNERS = 4,
      PATH_METADATA_INCLUDE_ALL = 7,
    }

    enum PathPostProcessing {
      PATH_POSTPROCESSING_CORRIDORFUNNEL = 0,
      PATH_POSTPROCESSING_EDGECENTERED = 1,
    }

    var map: RID = RID()
    var metadata_flags: enum PathMetadataFlags = PATH_METADATA_INCLUDE_ALL
    var navigation_layers: int = 1
    var path_postprocessing: enum PathPostProcessing = PATH_POSTPROCESSING_CORRIDORFUNNEL
    var pathfinding_algorithm: enum PathfindingAlgorithm = PATHFINDING_ALGORITHM_ASTAR
    var start_position: Vector3 = Vector3(0, 0, 0)
    var target_position: Vector3 = Vector3(0, 0, 0)

# Object < RefCounted < NavigationPathQueryResult2D

  class NavigationPathQueryResult2D extends RefCounted:

    enum PathSegmentType {
      PATH_SEGMENT_TYPE_REGION = 0,
      PATH_SEGMENT_TYPE_LINK = 1,
    }

    var path: PackedVector2Array = PackedVector2Array()
    var path_owner_ids: PackedInt64Array = PackedInt64Array()
    var path_rids: Array[RID] = []
    var path_types: PackedInt32Array = PackedInt32Array()

    func reset()

# Object < RefCounted < NavigationPathQueryResult3D

  class NavigationPathQueryResult3D extends RefCounted:

    enum PathSegmentType {
      PATH_SEGMENT_TYPE_REGION = 0,
      PATH_SEGMENT_TYPE_LINK = 1,
    }

    var path: PackedVector3Array = PackedVector3Array()
    var path_owner_ids: PackedInt64Array = PackedInt64Array()
    var path_rids: Array[RID] = []
    var path_types: PackedInt32Array = PackedInt32Array()

    func reset()

# Object < RefCounted < Node3DGizmo (abstract)

  class Node3DGizmo extends RefCounted:

    pass 

# Object < RefCounted < PackedDataContainerRef (abstract)

  class PackedDataContainerRef extends RefCounted:

    func size() -> int

# Object < RefCounted < PacketPeer (abstract)

  class PacketPeer extends RefCounted:

    var encode_buffer_max_size: int = 8388608

    func get_available_packet_count() -> int
    func get_packet() -> PackedByteArray
    func get_packet_error() -> enum Error
    func get_var(allow_objects: bool = false) -> Variant
    func put_packet(buffer: PackedByteArray) -> enum Error
    func put_var(var: Variant, full_objects: bool = false) -> enum Error

# Object < RefCounted < PacketPeer < MultiplayerPeer (abstract)

  class MultiplayerPeer extends PacketPeer:

    const TARGET_PEER_BROADCAST = 0
    const TARGET_PEER_SERVER = 1

    enum ConnectionStatus {
      CONNECTION_DISCONNECTED = 0,
      CONNECTION_CONNECTING = 1,
      CONNECTION_CONNECTED = 2,
    }

    enum TransferMode {
      TRANSFER_MODE_UNRELIABLE = 0,
      TRANSFER_MODE_UNRELIABLE_ORDERED = 1,
      TRANSFER_MODE_RELIABLE = 2,
    }

    var refuse_new_connections: bool = false
    var transfer_channel: int = 0
    var transfer_mode: enum TransferMode = TRANSFER_MODE_RELIABLE

    signal peer_connected(id: int)
    signal peer_disconnected(id: int)

    func close()
    func disconnect_peer(peer: int, force: bool = false)
    func generate_unique_id() -> int
    func get_connection_status() -> enum ConnectionStatus
    func get_packet_channel() -> int
    func get_packet_mode() -> enum TransferMode
    func get_packet_peer() -> int
    func get_unique_id() -> int
    func is_server_relay_supported() -> bool
    func poll()
    func set_target_peer(id: int)

# Object < RefCounted < PacketPeer < MultiplayerPeer < OfflineMultiplayerPeer

  class OfflineMultiplayerPeer extends MultiplayerPeer:

    pass 

# Object < RefCounted < PacketPeer < PacketPeerDTLS

  class PacketPeerDTLS extends PacketPeer:

    enum Status {
      STATUS_DISCONNECTED = 0,
      STATUS_HANDSHAKING = 1,
      STATUS_CONNECTED = 2,
      STATUS_ERROR = 3,
      STATUS_ERROR_HOSTNAME_MISMATCH = 4,
    }

    func connect_to_peer(packet_peer: PacketPeerUDP, hostname: String, client_options: TLSOptions = null) -> enum Error
    func disconnect_from_peer()
    func get_status() -> enum Status
    func poll()

# Object < RefCounted < PacketPeer < PacketPeerStream

  class PacketPeerStream extends PacketPeer:

    var input_buffer_max_size: int = 65532
    var output_buffer_max_size: int = 65532
    var stream_peer: StreamPeer

# Object < RefCounted < PacketPeer < PacketPeerUDP

  class PacketPeerUDP extends PacketPeer:

    func bind(port: int, bind_address: String = "*", recv_buf_size: int = 65536) -> enum Error
    func close()
    func connect_to_host(host: String, port: int) -> enum Error
    func get_local_port() -> int
    func get_packet_ip() -> String
    func get_packet_port() -> int
    func is_bound() -> bool
    func is_socket_connected() -> bool
    func join_multicast_group(multicast_address: String, interface_name: String) -> enum Error
    func leave_multicast_group(multicast_address: String, interface_name: String) -> enum Error
    func set_broadcast_enabled(enabled: bool)
    func set_dest_address(host: String, port: int) -> enum Error
    func wait() -> enum Error

# Object < RefCounted < PCKPacker

  class PCKPacker extends RefCounted:

    func add_file(pck_path: String, source_path: String, encrypt: bool = false) -> enum Error
    func flush(verbose: bool = false) -> enum Error
    func pck_start(pck_name: String, alignment: int = 32, key: String = "0000000000000000000000000000000000000000000000000000000000000000", encrypt_directory: bool = false) -> enum Error

# Object < RefCounted < PhysicsPointQueryParameters2D

  class PhysicsPointQueryParameters2D extends RefCounted:

    var canvas_instance_id: int = 0
    var collide_with_areas: bool = false
    var collide_with_bodies: bool = true
    var collision_mask: int = 4294967295
    var exclude: Array[RID] = []
    var position: Vector2 = Vector2(0, 0)

# Object < RefCounted < PhysicsPointQueryParameters3D

  class PhysicsPointQueryParameters3D extends RefCounted:

    var collide_with_areas: bool = false
    var collide_with_bodies: bool = true
    var collision_mask: int = 4294967295
    var exclude: Array[RID] = []
    var position: Vector3 = Vector3(0, 0, 0)

# Object < RefCounted < PhysicsRayQueryParameters2D

  class PhysicsRayQueryParameters2D extends RefCounted:

    static func create(from: Vector2, to: Vector2, collision_mask: int = 4294967295, exclude: Array[RID] = []) -> PhysicsRayQueryParameters2D

    var collide_with_areas: bool = false
    var collide_with_bodies: bool = true
    var collision_mask: int = 4294967295
    var exclude: Array[RID] = []
    var from: Vector2 = Vector2(0, 0)
    var hit_from_inside: bool = false
    var to: Vector2 = Vector2(0, 0)

# Object < RefCounted < PhysicsRayQueryParameters3D

  class PhysicsRayQueryParameters3D extends RefCounted:

    static func create(from: Vector3, to: Vector3, collision_mask: int = 4294967295, exclude: Array[RID] = []) -> PhysicsRayQueryParameters3D

    var collide_with_areas: bool = false
    var collide_with_bodies: bool = true
    var collision_mask: int = 4294967295
    var exclude: Array[RID] = []
    var from: Vector3 = Vector3(0, 0, 0)
    var hit_back_faces: bool = true
    var hit_from_inside: bool = false
    var to: Vector3 = Vector3(0, 0, 0)

# Object < RefCounted < PhysicsShapeQueryParameters2D

  class PhysicsShapeQueryParameters2D extends RefCounted:

    var collide_with_areas: bool = false
    var collide_with_bodies: bool = true
    var collision_mask: int = 4294967295
    var exclude: Array[RID] = []
    var margin: float = 0.0
    var motion: Vector2 = Vector2(0, 0)
    var shape: Resource
    var shape_rid: RID = RID()
    var transform: Transform2D = Transform2D(Vector2(1, 0), Vector2(0, 1), Vector2(0, 0))

# Object < RefCounted < PhysicsShapeQueryParameters3D

  class PhysicsShapeQueryParameters3D extends RefCounted:

    var collide_with_areas: bool = false
    var collide_with_bodies: bool = true
    var collision_mask: int = 4294967295
    var exclude: Array[RID] = []
    var margin: float = 0.0
    var motion: Vector3 = Vector3(0, 0, 0)
    var shape: Resource
    var shape_rid: RID = RID()
    var transform: Transform3D = Transform3D(Vector3(1, 0, 0), Vector3(0, 1, 0), Vector3(0, 0, 1), Vector3(0, 0, 0))

# Object < RefCounted < PhysicsTestMotionParameters2D

  class PhysicsTestMotionParameters2D extends RefCounted:

    var collide_separation_ray: bool = false
    var exclude_bodies: Array[RID] = []
    var exclude_objects: Array[int] = []
    var from: Transform2D = Transform2D(Vector2(1, 0), Vector2(0, 1), Vector2(0, 0))
    var margin: float = 0.08
    var motion: Vector2 = Vector2(0, 0)
    var recovery_as_collision: bool = false

# Object < RefCounted < PhysicsTestMotionParameters3D

  class PhysicsTestMotionParameters3D extends RefCounted:

    var collide_separation_ray: bool = false
    var exclude_bodies: Array[RID] = []
    var exclude_objects: Array[int] = []
    var from: Transform3D = Transform3D(Vector3(1, 0, 0), Vector3(0, 1, 0), Vector3(0, 0, 1), Vector3(0, 0, 0))
    var margin: float = 0.001
    var max_collisions: int = 1
    var motion: Vector3 = Vector3(0, 0, 0)
    var recovery_as_collision: bool = false

# Object < RefCounted < PhysicsTestMotionResult2D

  class PhysicsTestMotionResult2D extends RefCounted:

    func get_collider() -> Object
    func get_collider_id() -> int
    func get_collider_rid() -> RID
    func get_collider_shape() -> int
    func get_collider_velocity() -> Vector2
    func get_collision_depth() -> float
    func get_collision_local_shape() -> int
    func get_collision_normal() -> Vector2
    func get_collision_point() -> Vector2
    func get_collision_safe_fraction() -> float
    func get_collision_unsafe_fraction() -> float
    func get_remainder() -> Vector2
    func get_travel() -> Vector2

# Object < RefCounted < PhysicsTestMotionResult3D

  class PhysicsTestMotionResult3D extends RefCounted:

    func get_collider(collision_index: int = 0) -> Object
    func get_collider_id(collision_index: int = 0) -> int
    func get_collider_rid(collision_index: int = 0) -> RID
    func get_collider_shape(collision_index: int = 0) -> int
    func get_collider_velocity(collision_index: int = 0) -> Vector3
    func get_collision_count() -> int
    func get_collision_depth(collision_index: int = 0) -> float
    func get_collision_local_shape(collision_index: int = 0) -> int
    func get_collision_normal(collision_index: int = 0) -> Vector3
    func get_collision_point(collision_index: int = 0) -> Vector3
    func get_collision_safe_fraction() -> float
    func get_collision_unsafe_fraction() -> float
    func get_remainder() -> Vector3
    func get_travel() -> Vector3

# Object < RefCounted < RandomNumberGenerator

  class RandomNumberGenerator extends RefCounted:

    var seed: int = 0
    var state: int = 0

    func randf() -> float
    func randf_range(from: float, to: float) -> float
    func randfn(mean: float = 0.0, deviation: float = 1.0) -> float
    func randi() -> int
    func randi_range(from: int, to: int) -> int
    func randomize()

# Object < RefCounted < RDAttachmentFormat

  class RDAttachmentFormat extends RefCounted:

    var format: enum RenderingDevice.DataFormat = RenderingDevice.DATA_FORMAT_R8G8B8A8_UNORM
    var samples: enum RenderingDevice.TextureSamples = RenderingDevice.TEXTURE_SAMPLES_1
    var usage_flags: int = 0

# Object < RefCounted < RDFramebufferPass

  class RDFramebufferPass extends RefCounted:

    const ATTACHMENT_UNUSED = -1

    var color_attachments: PackedInt32Array = PackedInt32Array()
    var depth_attachment: int = -1
    var input_attachments: PackedInt32Array = PackedInt32Array()
    var preserve_attachments: PackedInt32Array = PackedInt32Array()
    var resolve_attachments: PackedInt32Array = PackedInt32Array()

# Object < RefCounted < RDPipelineColorBlendState

  class RDPipelineColorBlendState extends RefCounted:

    var attachments: Array[RDPipelineColorBlendStateAttachment] = []
    var blend_constant: Color = Color(0, 0, 0, 1)
    var enable_logic_op: bool = false
    var logic_op: enum RenderingDevice.LogicOperation = RenderingDevice.LOGIC_OP_CLEAR

# Object < RefCounted < RDPipelineColorBlendStateAttachment

  class RDPipelineColorBlendStateAttachment extends RefCounted:

    var alpha_blend_op: enum RenderingDevice.BlendOperation = RenderingDevice.BLEND_OP_ADD
    var color_blend_op: enum RenderingDevice.BlendOperation = RenderingDevice.BLEND_OP_ADD
    var dst_alpha_blend_factor: enum RenderingDevice.BlendFactor = RenderingDevice.BLEND_FACTOR_ZERO
    var dst_color_blend_factor: enum RenderingDevice.BlendFactor = RenderingDevice.BLEND_FACTOR_ZERO
    var enable_blend: bool = false
    var src_alpha_blend_factor: enum RenderingDevice.BlendFactor = RenderingDevice.BLEND_FACTOR_ZERO
    var src_color_blend_factor: enum RenderingDevice.BlendFactor = RenderingDevice.BLEND_FACTOR_ZERO
    var write_a: bool = true
    var write_b: bool = true
    var write_g: bool = true
    var write_r: bool = true

    func set_as_mix()

# Object < RefCounted < RDPipelineDepthStencilState

  class RDPipelineDepthStencilState extends RefCounted:

    var back_op_compare: enum RenderingDevice.CompareOperator = RenderingDevice.COMPARE_OP_ALWAYS
    var back_op_compare_mask: int = 0
    var back_op_depth_fail: enum RenderingDevice.StencilOperation = RenderingDevice.STENCIL_OP_ZERO
    var back_op_fail: enum RenderingDevice.StencilOperation = RenderingDevice.STENCIL_OP_ZERO
    var back_op_pass: enum RenderingDevice.StencilOperation = RenderingDevice.STENCIL_OP_ZERO
    var back_op_reference: int = 0
    var back_op_write_mask: int = 0
    var depth_compare_operator: enum RenderingDevice.CompareOperator = RenderingDevice.COMPARE_OP_ALWAYS
    var depth_range_max: float = 0.0
    var depth_range_min: float = 0.0
    var enable_depth_range: bool = false
    var enable_depth_test: bool = false
    var enable_depth_write: bool = false
    var enable_stencil: bool = false
    var front_op_compare: enum RenderingDevice.CompareOperator = RenderingDevice.COMPARE_OP_ALWAYS
    var front_op_compare_mask: int = 0
    var front_op_depth_fail: enum RenderingDevice.StencilOperation = RenderingDevice.STENCIL_OP_ZERO
    var front_op_fail: enum RenderingDevice.StencilOperation = RenderingDevice.STENCIL_OP_ZERO
    var front_op_pass: enum RenderingDevice.StencilOperation = RenderingDevice.STENCIL_OP_ZERO
    var front_op_reference: int = 0
    var front_op_write_mask: int = 0

# Object < RefCounted < RDPipelineMultisampleState

  class RDPipelineMultisampleState extends RefCounted:

    var enable_alpha_to_coverage: bool = false
    var enable_alpha_to_one: bool = false
    var enable_sample_shading: bool = false
    var min_sample_shading: float = 0.0
    var sample_count: enum RenderingDevice.TextureSamples = RenderingDevice.TEXTURE_SAMPLES_1
    var sample_masks: Array[int] = []

# Object < RefCounted < RDPipelineRasterizationState

  class RDPipelineRasterizationState extends RefCounted:

    var cull_mode: enum RenderingDevice.PolygonCullMode = RenderingDevice.POLYGON_CULL_DISABLED
    var depth_bias_clamp: float = 0.0
    var depth_bias_constant_factor: float = 0.0
    var depth_bias_enabled: bool = false
    var depth_bias_slope_factor: float = 0.0
    var discard_primitives: bool = false
    var enable_depth_clamp: bool = false
    var front_face: enum RenderingDevice.PolygonFrontFace = RenderingDevice.POLYGON_FRONT_FACE_CLOCKWISE
    var line_width: float = 1.0
    var patch_control_points: int = 1
    var wireframe: bool = false

# Object < RefCounted < RDPipelineSpecializationConstant

  class RDPipelineSpecializationConstant extends RefCounted:

    var constant_id: int = 0
    var value: Variant

# Object < RefCounted < RDSamplerState

  class RDSamplerState extends RefCounted:

    var anisotropy_max: float = 1.0
    var border_color: enum RenderingDevice.SamplerBorderColor = RenderingDevice.SAMPLER_BORDER_COLOR_FLOAT_OPAQUE_BLACK
    var compare_op: enum RenderingDevice.CompareOperator = RenderingDevice.COMPARE_OP_ALWAYS
    var enable_compare: bool = false
    var lod_bias: float = 0.0
    var mag_filter: enum RenderingDevice.SamplerFilter = RenderingDevice.SAMPLER_FILTER_NEAREST
    var max_lod: float = 1e+20
    var min_filter: enum RenderingDevice.SamplerFilter = RenderingDevice.SAMPLER_FILTER_NEAREST
    var min_lod: float = 0.0
    var mip_filter: enum RenderingDevice.SamplerFilter = RenderingDevice.SAMPLER_FILTER_NEAREST
    var repeat_u: enum RenderingDevice.SamplerRepeatMode = RenderingDevice.SAMPLER_REPEAT_MODE_CLAMP_TO_EDGE
    var repeat_v: enum RenderingDevice.SamplerRepeatMode = RenderingDevice.SAMPLER_REPEAT_MODE_CLAMP_TO_EDGE
    var repeat_w: enum RenderingDevice.SamplerRepeatMode = RenderingDevice.SAMPLER_REPEAT_MODE_CLAMP_TO_EDGE
    var unnormalized_uvw: bool = false
    var use_anisotropy: bool = false

# Object < RefCounted < RDShaderSource

  class RDShaderSource extends RefCounted:

    var language: enum RenderingDevice.ShaderLanguage = RenderingDevice.SHADER_LANGUAGE_GLSL
    var source_compute: String = ""
    var source_fragment: String = ""
    var source_tesselation_control: String = ""
    var source_tesselation_evaluation: String = ""
    var source_vertex: String = ""

    func get_stage_source(stage: enum RenderingDevice.ShaderStage) -> String
    func set_stage_source(stage: enum RenderingDevice.ShaderStage, source: String)

# Object < RefCounted < RDTextureFormat

  class RDTextureFormat extends RefCounted:

    var array_layers: int = 1
    var depth: int = 1
    var format: enum RenderingDevice.DataFormat = RenderingDevice.DATA_FORMAT_R8_UNORM
    var height: int = 1
    var mipmaps: int = 1
    var samples: enum RenderingDevice.TextureSamples = RenderingDevice.TEXTURE_SAMPLES_1
    var texture_type: enum RenderingDevice.TextureType = RenderingDevice.TEXTURE_TYPE_2D
    var usage_bits: enum RenderingDevice.TextureUsageBits = 0
    var width: int = 1

    func add_shareable_format(format: enum RenderingDevice.DataFormat)
    func remove_shareable_format(format: enum RenderingDevice.DataFormat)

# Object < RefCounted < RDTextureView

  class RDTextureView extends RefCounted:

    var format_override: enum RenderingDevice.DataFormat = RenderingDevice.DATA_FORMAT_MAX
    var swizzle_a: enum RenderingDevice.TextureSwizzle = RenderingDevice.TEXTURE_SWIZZLE_A
    var swizzle_b: enum RenderingDevice.TextureSwizzle = RenderingDevice.TEXTURE_SWIZZLE_B
    var swizzle_g: enum RenderingDevice.TextureSwizzle = RenderingDevice.TEXTURE_SWIZZLE_G
    var swizzle_r: enum RenderingDevice.TextureSwizzle = RenderingDevice.TEXTURE_SWIZZLE_R

# Object < RefCounted < RDUniform

  class RDUniform extends RefCounted:

    var binding: int = 0
    var uniform_type: enum RenderingDevice.UniformType = RenderingDevice.UNIFORM_TYPE_IMAGE

    func add_id(id: RID)
    func clear_ids()
    func get_ids() -> Array[RID]

# Object < RefCounted < RDVertexAttribute

  class RDVertexAttribute extends RefCounted:

    var format: enum RenderingDevice.DataFormat = RenderingDevice.DATA_FORMAT_MAX
    var frequency: enum RenderingDevice.VertexFrequency = RenderingDevice.VERTEX_FREQUENCY_VERTEX
    var location: int = 0
    var offset: int = 0
    var stride: int = 0

# Object < RefCounted < RenderSceneBuffers (abstract)

  class RenderSceneBuffers extends RefCounted:

    func configure(config: RenderSceneBuffersConfiguration)

# Object < RefCounted < RenderSceneBuffers < RenderSceneBuffersRD (abstract)

  class RenderSceneBuffersRD extends RenderSceneBuffers:

    func clear_context(context: StringName)
    func create_texture(context: StringName, name: StringName, data_format: enum RenderingDevice.DataFormat, usage_bits: int, texture_samples: enum RenderingDevice.TextureSamples, size: Vector2i, layers: int, mipmaps: int, unique: bool) -> RID
    func create_texture_from_format(context: StringName, name: StringName, format: RDTextureFormat, view: RDTextureView, unique: bool) -> RID
    func create_texture_view(context: StringName, name: StringName, view_name: StringName, view: RDTextureView) -> RID
    func get_color_layer(layer: int) -> RID
    func get_color_texture() -> RID
    func get_depth_layer(layer: int) -> RID
    func get_depth_texture() -> RID
    func get_internal_size() -> Vector2i
    func get_render_target() -> RID
    func get_texture(context: StringName, name: StringName) -> RID
    func get_texture_format(context: StringName, name: StringName) -> RDTextureFormat
    func get_texture_slice(context: StringName, name: StringName, layer: int, mipmap: int, layers: int, mipmaps: int) -> RID
    func get_texture_slice_size(context: StringName, name: StringName, mipmap: int) -> Vector2i
    func get_texture_slice_view(context: StringName, name: StringName, layer: int, mipmap: int, layers: int, mipmaps: int, view: RDTextureView) -> RID
    func get_use_taa() -> bool
    func get_velocity_layer(layer: int) -> RID
    func get_velocity_texture() -> RID
    func get_view_count() -> int
    func has_texture(context: StringName, name: StringName) -> bool

# Object < RefCounted < RenderSceneBuffersConfiguration

  class RenderSceneBuffersConfiguration extends RefCounted:

    var fsr_sharpness: float = 0.0
    var internal_size: Vector2i = Vector2i(0, 0)
    var msaa_3d: enum RenderingServer.ViewportMSAA = RenderingServer.VIEWPORT_MSAA_DISABLED
    var render_target: RID = RID()
    var scaling_3d_mode: enum RenderingServer.ViewportScaling3DMode = RenderingServer.VIEWPORT_SCALING_3D_MODE_FSR & RenderingServer.VIEWPORT_SCALING_3D_MODE_FSR2 & RenderingServer. & RenderingServer. & RenderingServer. & RenderingServer. & RenderingServer. & RenderingServer.
    var screen_space_aa: enum RenderingServer.ViewportScreenSpaceAA = RenderingServer.VIEWPORT_SCREEN_SPACE_AA_DISABLED
    var target_size: Vector2i = Vector2i(0, 0)
    var texture_mipmap_bias: float = 0.0
    var view_count: int = 1

# Object < RefCounted < ResourceFormatLoader

  class ResourceFormatLoader extends RefCounted:

    enum CacheMode {
      CACHE_MODE_IGNORE = 0,
      CACHE_MODE_REUSE = 1,
      CACHE_MODE_REPLACE = 2,
    }

    func _exists(path: String) -> bool
    func _get_classes_used(path: String) -> PackedStringArray
    func _get_dependencies(path: String, add_types: bool) -> PackedStringArray
    func _get_recognized_extensions() -> PackedStringArray
    func _get_resource_script_class(path: String) -> String
    func _get_resource_type(path: String) -> String
    func _get_resource_uid(path: String) -> int
    func _handles_type(type: StringName) -> bool
    func _load(path: String, original_path: String, use_sub_threads: bool, cache_mode: int) -> Variant
    func _recognize_path(path: String, type: StringName) -> bool
    func _rename_dependencies(path: String, renames: Dictionary) -> enum Error

# Object < RefCounted < ResourceFormatSaver

  class ResourceFormatSaver extends RefCounted:

    func _get_recognized_extensions(resource: Resource) -> PackedStringArray
    func _recognize(resource: Resource) -> bool
    func _recognize_path(resource: Resource, path: String) -> bool
    func _save(resource: Resource, path: String, flags: int) -> enum Error
    func _set_uid(path: String, uid: int) -> enum Error

# Object < RefCounted < ResourceImporter (abstract)

  class ResourceImporter extends RefCounted:

    enum ImportOrder {
      IMPORT_ORDER_DEFAULT = 0,
      IMPORT_ORDER_SCENE = 100,
    }

# Object < RefCounted < ResourceImporter < ResourceImporterBitMap

  class ResourceImporterBitMap extends ResourceImporter:

    var create_from: int = 0
    var threshold: float = 0.5

# Object < RefCounted < ResourceImporter < ResourceImporterBMFont

  class ResourceImporterBMFont extends ResourceImporter:

    var compress: bool = true
    var fallbacks: Array = []
    var scaling_mode: int = 2

# Object < RefCounted < ResourceImporter < ResourceImporterCSVTranslation

  class ResourceImporterCSVTranslation extends ResourceImporter:

    var compress: bool = true
    var delimiter: int = 0

# Object < RefCounted < ResourceImporter < ResourceImporterDynamicFont

  class ResourceImporterDynamicFont extends ResourceImporter:

    var allow_system_fallback: bool = true
    var antialiasing: int = 1
    var compress: bool = true
    var fallbacks: Array = []
    var force_autohinter: bool = false
    var generate_mipmaps: bool = false
    var hinting: int = 1
    var language_support: Dictionary = {}
    var msdf_pixel_range: int = 8
    var msdf_size: int = 48
    var multichannel_signed_distance_field: bool = false
    var opentype_features: Dictionary = {}
    var oversampling: float = 0.0
    var preload: Array = []
    var script_support: Dictionary = {}
    var subpixel_positioning: int = 1

# Object < RefCounted < ResourceImporter < ResourceImporterImage

  class ResourceImporterImage extends ResourceImporter:

    pass 

# Object < RefCounted < ResourceImporter < ResourceImporterImageFont

  class ResourceImporterImageFont extends ResourceImporter:

    var character_margin: Rect2i = Rect2i(0, 0, 0, 0)
    var character_ranges: PackedStringArray = PackedStringArray()
    var columns: int = 1
    var compress: bool = true
    var fallbacks: Array = []
    var image_margin: Rect2i = Rect2i(0, 0, 0, 0)
    var rows: int = 1
    var scaling_mode: int = 2

# Object < RefCounted < ResourceImporter < ResourceImporterLayeredTexture

  class ResourceImporterLayeredTexture extends ResourceImporter:

    var "compress/channel_pack": int = 0
    var "compress/hdr_compression": int = 1
    var "compress/high_quality": bool = false
    var "compress/lossy_quality": float = 0.7
    var "compress/mode": int = 1
    var "mipmaps/generate": bool = true
    var "mipmaps/limit": int = -1
    var "slices/arrangement": int = 1

# Object < RefCounted < ResourceImporter < ResourceImporterOBJ

  class ResourceImporterOBJ extends ResourceImporter:

    var force_disable_mesh_compression: bool = false
    var generate_tangents: bool = true
    var offset_mesh: Vector3 = Vector3(0, 0, 0)
    var optimize_mesh: bool = true
    var scale_mesh: Vector3 = Vector3(1, 1, 1)

# Object < RefCounted < ResourceImporter < ResourceImporterScene

  class ResourceImporterScene extends ResourceImporter:

    var _subresources: Dictionary = {}

    var "animation/fps": float = 30
    var "animation/import": bool = true
    var "animation/remove_immutable_tracks": bool = true
    var "animation/trimming": bool = false
    var "import_script/path": String = ""
    var "meshes/create_shadow_meshes": bool = true
    var "meshes/ensure_tangents": bool = true
    var "meshes/force_disable_compression": bool = false
    var "meshes/generate_lods": bool = true
    var "meshes/light_baking": int = 1
    var "meshes/lightmap_texel_size": float = 0.2
    var "nodes/apply_root_scale": bool = true
    var "nodes/root_name": String = ""
    var "nodes/root_scale": float = 1.0
    var "nodes/root_type": String = ""
    var "skins/use_named_skins": bool = true

# Object < RefCounted < ResourceImporter < ResourceImporterShaderFile

  class ResourceImporterShaderFile extends ResourceImporter:

    pass 

# Object < RefCounted < ResourceImporter < ResourceImporterTexture

  class ResourceImporterTexture extends ResourceImporter:

    var "compress/channel_pack": int = 0
    var "compress/hdr_compression": int = 1
    var "compress/high_quality": bool = false
    var "compress/lossy_quality": float = 0.7
    var "compress/mode": int = 0
    var "compress/normal_map": int = 0
    var "detect_3d/compress_to": int = 1
    var "editor/convert_colors_with_editor_theme": bool = false
    var "editor/scale_with_editor_scale": bool = false
    var "mipmaps/generate": bool = false
    var "mipmaps/limit": int = -1
    var "process/fix_alpha_border": bool = true
    var "process/hdr_as_srgb": bool = false
    var "process/hdr_clamp_exposure": bool = false
    var "process/normal_map_invert_y": bool = false
    var "process/premult_alpha": bool = false
    var "process/size_limit": int = 0
    var "roughness/mode": int = 0
    var "roughness/src_normal": String = ""
    var "svg/scale": float = 1.0

# Object < RefCounted < ResourceImporter < ResourceImporterTextureAtlas

  class ResourceImporterTextureAtlas extends ResourceImporter:

    var atlas_file: String = ""
    var crop_to_region: bool = false
    var import_mode: int = 0
    var trim_alpha_border_from_region: bool = true

# Object < RefCounted < ResourceImporter < ResourceImporterWAV

  class ResourceImporterWAV extends ResourceImporter:

    var "compress/mode": int = 0
    var "edit/loop_begin": int = 0
    var "edit/loop_end": int = -1
    var "edit/loop_mode": int = 0
    var "edit/normalize": bool = false
    var "edit/trim": bool = false
    var "force/8_bit": bool = false
    var "force/max_rate": bool = false
    var "force/max_rate_hz": float = 44100
    var "force/mono": bool = false

# Object < RefCounted < SceneState (abstract)

  class SceneState extends RefCounted:

    enum GenEditState {
      GEN_EDIT_STATE_DISABLED = 0,
      GEN_EDIT_STATE_INSTANCE = 1,
      GEN_EDIT_STATE_MAIN = 2,
      GEN_EDIT_STATE_MAIN_INHERITED = 3,
    }

    func get_connection_binds(idx: int) -> Array
    func get_connection_count() -> int
    func get_connection_flags(idx: int) -> int
    func get_connection_method(idx: int) -> StringName
    func get_connection_signal(idx: int) -> StringName
    func get_connection_source(idx: int) -> NodePath
    func get_connection_target(idx: int) -> NodePath
    func get_connection_unbinds(idx: int) -> int
    func get_node_count() -> int
    func get_node_groups(idx: int) -> PackedStringArray
    func get_node_index(idx: int) -> int
    func get_node_instance(idx: int) -> PackedScene
    func get_node_instance_placeholder(idx: int) -> String
    func get_node_name(idx: int) -> StringName
    func get_node_owner_path(idx: int) -> NodePath
    func get_node_path(idx: int, for_parent: bool = false) -> NodePath
    func get_node_property_count(idx: int) -> int
    func get_node_property_name(idx: int, prop_idx: int) -> StringName
    func get_node_property_value(idx: int, prop_idx: int) -> Variant
    func get_node_type(idx: int) -> StringName
    func is_node_instance_placeholder(idx: int) -> bool

# Object < RefCounted < SceneTreeTimer (abstract)

  class SceneTreeTimer extends RefCounted:

    var time_left: float

    signal timeout()

# Object < RefCounted < Semaphore

  class Semaphore extends RefCounted:

    func post()
    func try_wait() -> bool
    func wait()

# Object < RefCounted < SkinReference (abstract)

  class SkinReference extends RefCounted:

    func get_skeleton() -> RID
    func get_skin() -> Skin

# Object < RefCounted < StreamPeer (abstract)

  class StreamPeer extends RefCounted:

    var big_endian: bool = false

    func get_16() -> int
    func get_32() -> int
    func get_64() -> int
    func get_8() -> int
    func get_available_bytes() -> int
    func get_data(bytes: int) -> Array
    func get_double() -> float
    func get_float() -> float
    func get_partial_data(bytes: int) -> Array
    func get_string(bytes: int = -1) -> String
    func get_u16() -> int
    func get_u32() -> int
    func get_u64() -> int
    func get_u8() -> int
    func get_utf8_string(bytes: int = -1) -> String
    func get_var(allow_objects: bool = false) -> Variant
    func put_16(value: int)
    func put_32(value: int)
    func put_64(value: int)
    func put_8(value: int)
    func put_data(data: PackedByteArray) -> enum Error
    func put_double(value: float)
    func put_float(value: float)
    func put_partial_data(data: PackedByteArray) -> Array
    func put_string(value: String)
    func put_u16(value: int)
    func put_u32(value: int)
    func put_u64(value: int)
    func put_u8(value: int)
    func put_utf8_string(value: String)
    func put_var(value: Variant, full_objects: bool = false)

# Object < RefCounted < StreamPeer < StreamPeerBuffer

  class StreamPeerBuffer extends StreamPeer:

    var data_array: PackedByteArray = PackedByteArray()

    func clear()
    func duplicate() -> StreamPeerBuffer
    func get_position() -> int
    func get_size() -> int
    func resize(size: int)
    func seek(position: int)

# Object < RefCounted < StreamPeer < StreamPeerGZIP

  class StreamPeerGZIP extends StreamPeer:

    func clear()
    func finish() -> enum Error
    func start_compression(use_deflate: bool = false, buffer_size: int = 65535) -> enum Error
    func start_decompression(use_deflate: bool = false, buffer_size: int = 65535) -> enum Error

# Object < RefCounted < StreamPeer < StreamPeerTCP

  class StreamPeerTCP extends StreamPeer:

    enum Status {
      STATUS_NONE = 0,
      STATUS_CONNECTING = 1,
      STATUS_CONNECTED = 2,
      STATUS_ERROR = 3,
    }

    func bind(port: int, host: String = "*") -> enum Error
    func connect_to_host(host: String, port: int) -> enum Error
    func disconnect_from_host()
    func get_connected_host() -> String
    func get_connected_port() -> int
    func get_local_port() -> int
    func get_status() -> enum Status
    func poll() -> enum Error
    func set_no_delay(enabled: bool)

# Object < RefCounted < StreamPeer < StreamPeerTLS

  class StreamPeerTLS extends StreamPeer:

    enum Status {
      STATUS_DISCONNECTED = 0,
      STATUS_HANDSHAKING = 1,
      STATUS_CONNECTED = 2,
      STATUS_ERROR = 3,
      STATUS_ERROR_HOSTNAME_MISMATCH = 4,
    }

    func accept_stream(stream: StreamPeer, server_options: TLSOptions) -> enum Error
    func connect_to_stream(stream: StreamPeer, common_name: String, client_options: TLSOptions = null) -> enum Error
    func disconnect_from_stream()
    func get_status() -> enum Status
    func get_stream() -> StreamPeer
    func poll()

# Object < RefCounted < SurfaceTool

  class SurfaceTool extends RefCounted:

    enum CustomFormat {
      CUSTOM_RGBA8_UNORM = 0,
      CUSTOM_RGBA8_SNORM = 1,
      CUSTOM_RG_HALF = 2,
      CUSTOM_RGBA_HALF = 3,
      CUSTOM_R_FLOAT = 4,
      CUSTOM_RG_FLOAT = 5,
      CUSTOM_RGB_FLOAT = 6,
      CUSTOM_RGBA_FLOAT = 7,
      CUSTOM_MAX = 8,
    }

    enum SkinWeightCount {
      SKIN_4_WEIGHTS = 0,
      SKIN_8_WEIGHTS = 1,
    }

    func add_index(index: int)
    func add_triangle_fan(vertices: PackedVector3Array, uvs: PackedVector2Array = PackedVector2Array(), colors: PackedColorArray = PackedColorArray(), uv2s: PackedVector2Array = PackedVector2Array(), normals: PackedVector3Array = PackedVector3Array(), tangents: Array[Plane] = [])
    func add_vertex(vertex: Vector3)
    func append_from(existing: Mesh, surface: int, transform: Transform3D)
    func begin(primitive: enum Mesh.PrimitiveType)
    func clear()
    func commit(existing: ArrayMesh = null, flags: int = 0) -> ArrayMesh
    func commit_to_arrays() -> Array
    func create_from(existing: Mesh, surface: int)
    func create_from_blend_shape(existing: Mesh, surface: int, blend_shape: String)
    func deindex()
    func generate_lod(nd_threshold: float, target_index_count: int = 3) -> PackedInt32Array
    func generate_normals(flip: bool = false)
    func generate_tangents()
    func get_aabb() -> AABB
    func get_custom_format(channel_index: int) -> enum CustomFormat
    func get_primitive_type() -> enum Mesh.PrimitiveType
    func get_skin_weight_count() -> enum SkinWeightCount
    func index()
    func optimize_indices_for_cache()
    func set_bones(bones: PackedInt32Array)
    func set_color(color: Color)
    func set_custom(channel_index: int, custom_color: Color)
    func set_custom_format(channel_index: int, format: enum CustomFormat)
    func set_material(material: Material)
    func set_normal(normal: Vector3)
    func set_skin_weight_count(count: enum SkinWeightCount)
    func set_smooth_group(index: int)
    func set_tangent(tangent: Plane)
    func set_uv(uv: Vector2)
    func set_uv2(uv2: Vector2)
    func set_weights(weights: PackedFloat32Array)

# Object < RefCounted < TCPServer

  class TCPServer extends RefCounted:

    func get_local_port() -> int
    func is_connection_available() -> bool
    func is_listening() -> bool
    func listen(port: int, bind_address: String = "*") -> enum Error
    func stop()
    func take_connection() -> StreamPeerTCP

# Object < RefCounted < TextLine

  class TextLine extends RefCounted:

    var alignment: enum HorizontalAlignment = HORIZONTAL_ALIGNMENT_LEFT
    var direction: enum TextServer.Direction = TextServer.DIRECTION_AUTO
    var flags: enum TextServer.JustificationFlag = TextServer.JUSTIFICATION_KASHIDA & TextServer.JUSTIFICATION_WORD_BOUND
    var orientation: enum TextServer.Orientation = TextServer.ORIENTATION_HORIZONTAL
    var preserve_control: bool = false
    var preserve_invalid: bool = true
    var text_overrun_behavior: enum TextServer.OverrunBehavior = TextServer.OVERRUN_TRIM_ELLIPSIS
    var width: float = -1.0

    func add_object(key: Variant, size: Vector2, inline_align: enum InlineAlignment = INLINE_ALIGNMENT_CENTER, length: int = 1, baseline: float = 0.0) -> bool
    func add_string(text: String, font: Font, font_size: int, language: String = "", meta: Variant = null) -> bool
    func clear()
    func draw(canvas: RID, pos: Vector2, color: Color = Color(1, 1, 1, 1))
    func draw_outline(canvas: RID, pos: Vector2, outline_size: int = 1, color: Color = Color(1, 1, 1, 1))
    func get_line_ascent() -> float
    func get_line_descent() -> float
    func get_line_underline_position() -> float
    func get_line_underline_thickness() -> float
    func get_line_width() -> float
    func get_object_rect(key: Variant) -> Rect2
    func get_objects() -> Array
    func get_rid() -> RID
    func get_size() -> Vector2
    func hit_test(coords: float) -> int
    func resize_object(key: Variant, size: Vector2, inline_align: enum InlineAlignment = INLINE_ALIGNMENT_CENTER, baseline: float = 0.0) -> bool
    func set_bidi_override(override: Array)
    func tab_align(tab_stops: PackedFloat32Array)

# Object < RefCounted < TextParagraph

  class TextParagraph extends RefCounted:

    var alignment: enum HorizontalAlignment = HORIZONTAL_ALIGNMENT_LEFT
    var break_flags: enum TextServer.LineBreakFlag = TextServer.BREAK_MANDATORY & TextServer.BREAK_WORD_BOUND
    var custom_punctuation: String = ""
    var direction: enum TextServer.Direction = TextServer.DIRECTION_AUTO
    var justification_flags: enum TextServer.JustificationFlag = TextServer.JUSTIFICATION_KASHIDA & TextServer.JUSTIFICATION_WORD_BOUND & TextServer.JUSTIFICATION_SKIP_LAST_LINE & TextServer.JUSTIFICATION_DO_NOT_SKIP_SINGLE_LINE
    var max_lines_visible: int = -1
    var orientation: enum TextServer.Orientation = TextServer.ORIENTATION_HORIZONTAL
    var preserve_control: bool = false
    var preserve_invalid: bool = true
    var text_overrun_behavior: enum TextServer.OverrunBehavior = TextServer.OVERRUN_NO_TRIMMING
    var width: float = -1.0

    func add_object(key: Variant, size: Vector2, inline_align: enum InlineAlignment = INLINE_ALIGNMENT_CENTER, length: int = 1, baseline: float = 0.0) -> bool
    func add_string(text: String, font: Font, font_size: int, language: String = "", meta: Variant = null) -> bool
    func clear()
    func clear_dropcap()
    func draw(canvas: RID, pos: Vector2, color: Color = Color(1, 1, 1, 1), dc_color: Color = Color(1, 1, 1, 1))
    func draw_dropcap(canvas: RID, pos: Vector2, color: Color = Color(1, 1, 1, 1))
    func draw_dropcap_outline(canvas: RID, pos: Vector2, outline_size: int = 1, color: Color = Color(1, 1, 1, 1))
    func draw_line(canvas: RID, pos: Vector2, line: int, color: Color = Color(1, 1, 1, 1))
    func draw_line_outline(canvas: RID, pos: Vector2, line: int, outline_size: int = 1, color: Color = Color(1, 1, 1, 1))
    func draw_outline(canvas: RID, pos: Vector2, outline_size: int = 1, color: Color = Color(1, 1, 1, 1), dc_color: Color = Color(1, 1, 1, 1))
    func get_dropcap_lines() -> int
    func get_dropcap_rid() -> RID
    func get_dropcap_size() -> Vector2
    func get_line_ascent(line: int) -> float
    func get_line_count() -> int
    func get_line_descent(line: int) -> float
    func get_line_object_rect(line: int, key: Variant) -> Rect2
    func get_line_objects(line: int) -> Array
    func get_line_range(line: int) -> Vector2i
    func get_line_rid(line: int) -> RID
    func get_line_size(line: int) -> Vector2
    func get_line_underline_position(line: int) -> float
    func get_line_underline_thickness(line: int) -> float
    func get_line_width(line: int) -> float
    func get_non_wrapped_size() -> Vector2
    func get_rid() -> RID
    func get_size() -> Vector2
    func hit_test(coords: Vector2) -> int
    func resize_object(key: Variant, size: Vector2, inline_align: enum InlineAlignment = INLINE_ALIGNMENT_CENTER, baseline: float = 0.0) -> bool
    func set_bidi_override(override: Array)
    func set_dropcap(text: String, font: Font, font_size: int, dropcap_margins: Rect2 = Rect2(0, 0, 0, 0), language: String = "") -> bool
    func tab_align(tab_stops: PackedFloat32Array)

# Object < RefCounted < TextServer (abstract)

  class TextServer extends RefCounted:

    enum AutowrapMode {
      AUTOWRAP_OFF = 0,
      AUTOWRAP_ARBITRARY = 1,
      AUTOWRAP_WORD = 2,
      AUTOWRAP_WORD_SMART = 3,
    }

    enum ContourPointTag {
      CONTOUR_CURVE_TAG_OFF_CONIC = 0,
      CONTOUR_CURVE_TAG_ON = 1,
      CONTOUR_CURVE_TAG_OFF_CUBIC = 2,
    }

    enum Direction {
      DIRECTION_AUTO = 0,
      DIRECTION_LTR = 1,
      DIRECTION_RTL = 2,
      DIRECTION_INHERITED = 3,
    }

    enum Feature {
      FEATURE_SIMPLE_LAYOUT = 1,
      FEATURE_BIDI_LAYOUT = 2,
      FEATURE_VERTICAL_LAYOUT = 4,
      FEATURE_SHAPING = 8,
      FEATURE_KASHIDA_JUSTIFICATION = 16,
      FEATURE_BREAK_ITERATORS = 32,
      FEATURE_FONT_BITMAP = 64,
      FEATURE_FONT_DYNAMIC = 128,
      FEATURE_FONT_MSDF = 256,
      FEATURE_FONT_SYSTEM = 512,
      FEATURE_FONT_VARIABLE = 1024,
      FEATURE_CONTEXT_SENSITIVE_CASE_CONVERSION = 2048,
      FEATURE_USE_SUPPORT_DATA = 4096,
      FEATURE_UNICODE_IDENTIFIERS = 8192,
      FEATURE_UNICODE_SECURITY = 16384,
    }

    enum FixedSizeScaleMode {
      FIXED_SIZE_SCALE_DISABLE = 0,
      FIXED_SIZE_SCALE_INTEGER_ONLY = 1,
      FIXED_SIZE_SCALE_ENABLED = 2,
    }

    enum FontAntialiasing {
      FONT_ANTIALIASING_NONE = 0,
      FONT_ANTIALIASING_GRAY = 1,
      FONT_ANTIALIASING_LCD = 2,
    }

    enum FontLCDSubpixelLayout {
      FONT_LCD_SUBPIXEL_LAYOUT_NONE = 0,
      FONT_LCD_SUBPIXEL_LAYOUT_HRGB = 1,
      FONT_LCD_SUBPIXEL_LAYOUT_HBGR = 2,
      FONT_LCD_SUBPIXEL_LAYOUT_VRGB = 3,
      FONT_LCD_SUBPIXEL_LAYOUT_VBGR = 4,
      FONT_LCD_SUBPIXEL_LAYOUT_MAX = 5,
    }

    enum FontStyle {
      FONT_BOLD = 1,
      FONT_ITALIC = 2,
      FONT_FIXED_WIDTH = 4,
    }

    enum GraphemeFlag {
      GRAPHEME_IS_VALID = 1,
      GRAPHEME_IS_RTL = 2,
      GRAPHEME_IS_VIRTUAL = 4,
      GRAPHEME_IS_SPACE = 8,
      GRAPHEME_IS_BREAK_HARD = 16,
      GRAPHEME_IS_BREAK_SOFT = 32,
      GRAPHEME_IS_TAB = 64,
      GRAPHEME_IS_ELONGATION = 128,
      GRAPHEME_IS_PUNCTUATION = 256,
      GRAPHEME_IS_UNDERSCORE = 512,
      GRAPHEME_IS_CONNECTED = 1024,
      GRAPHEME_IS_SAFE_TO_INSERT_TATWEEL = 2048,
      GRAPHEME_IS_EMBEDDED_OBJECT = 4096,
    }

    enum Hinting {
      HINTING_NONE = 0,
      HINTING_LIGHT = 1,
      HINTING_NORMAL = 2,
    }

    enum JustificationFlag {
      JUSTIFICATION_NONE = 0,
      JUSTIFICATION_KASHIDA = 1,
      JUSTIFICATION_WORD_BOUND = 2,
      JUSTIFICATION_TRIM_EDGE_SPACES = 4,
      JUSTIFICATION_AFTER_LAST_TAB = 8,
      JUSTIFICATION_CONSTRAIN_ELLIPSIS = 16,
      JUSTIFICATION_SKIP_LAST_LINE = 32,
      JUSTIFICATION_SKIP_LAST_LINE_WITH_VISIBLE_CHARS = 64,
      JUSTIFICATION_DO_NOT_SKIP_SINGLE_LINE = 128,
    }

    enum LineBreakFlag {
      BREAK_NONE = 0,
      BREAK_MANDATORY = 1,
      BREAK_WORD_BOUND = 2,
      BREAK_GRAPHEME_BOUND = 4,
      BREAK_ADAPTIVE = 8,
      BREAK_TRIM_EDGE_SPACES = 16,
    }

    enum Orientation {
      ORIENTATION_HORIZONTAL = 0,
      ORIENTATION_VERTICAL = 1,
    }

    enum OverrunBehavior {
      OVERRUN_NO_TRIMMING = 0,
      OVERRUN_TRIM_CHAR = 1,
      OVERRUN_TRIM_WORD = 2,
      OVERRUN_TRIM_ELLIPSIS = 3,
      OVERRUN_TRIM_WORD_ELLIPSIS = 4,
    }

    enum SpacingType {
      SPACING_GLYPH = 0,
      SPACING_SPACE = 1,
      SPACING_TOP = 2,
      SPACING_BOTTOM = 3,
      SPACING_MAX = 4,
    }

    enum StructuredTextParser {
      STRUCTURED_TEXT_DEFAULT = 0,
      STRUCTURED_TEXT_URI = 1,
      STRUCTURED_TEXT_FILE = 2,
      STRUCTURED_TEXT_EMAIL = 3,
      STRUCTURED_TEXT_LIST = 4,
      STRUCTURED_TEXT_GDSCRIPT = 5,
      STRUCTURED_TEXT_CUSTOM = 6,
    }

    enum SubpixelPositioning {
      SUBPIXEL_POSITIONING_DISABLED = 0,
      SUBPIXEL_POSITIONING_AUTO = 1,
      SUBPIXEL_POSITIONING_ONE_HALF = 2,
      SUBPIXEL_POSITIONING_ONE_QUARTER = 3,
      SUBPIXEL_POSITIONING_ONE_QUARTER_MAX_SIZE = 16,
      SUBPIXEL_POSITIONING_ONE_HALF_MAX_SIZE = 20,
    }

    enum TextOverrunFlag {
      OVERRUN_NO_TRIM = 0,
      OVERRUN_TRIM = 1,
      OVERRUN_TRIM_WORD_ONLY = 2,
      OVERRUN_ADD_ELLIPSIS = 4,
      OVERRUN_ENFORCE_ELLIPSIS = 8,
      OVERRUN_JUSTIFICATION_AWARE = 16,
    }

    enum VisibleCharactersBehavior {
      VC_CHARS_BEFORE_SHAPING = 0,
      VC_CHARS_AFTER_SHAPING = 1,
      VC_GLYPHS_AUTO = 2,
      VC_GLYPHS_LTR = 3,
      VC_GLYPHS_RTL = 4,
    }

    func create_font() -> RID
    func create_font_linked_variation(font_rid: RID) -> RID
    func create_shaped_text(direction: enum Direction = DIRECTION_AUTO, orientation: enum Orientation = ORIENTATION_HORIZONTAL) -> RID
    func draw_hex_code_box(canvas: RID, size: int, pos: Vector2, index: int, color: Color)
    func font_clear_glyphs(font_rid: RID, size: Vector2i)
    func font_clear_kerning_map(font_rid: RID, size: int)
    func font_clear_size_cache(font_rid: RID)
    func font_clear_textures(font_rid: RID, size: Vector2i)
    func font_draw_glyph(font_rid: RID, canvas: RID, size: int, pos: Vector2, index: int, color: Color = Color(1, 1, 1, 1))
    func font_draw_glyph_outline(font_rid: RID, canvas: RID, size: int, outline_size: int, pos: Vector2, index: int, color: Color = Color(1, 1, 1, 1))
    func font_get_antialiasing(font_rid: RID) -> enum FontAntialiasing
    func font_get_ascent(font_rid: RID, size: int) -> float
    func font_get_char_from_glyph_index(font_rid: RID, size: int, glyph_index: int) -> int
    func font_get_descent(font_rid: RID, size: int) -> float
    func font_get_embolden(font_rid: RID) -> float
    func font_get_face_count(font_rid: RID) -> int
    func font_get_face_index(font_rid: RID) -> int
    func font_get_fixed_size(font_rid: RID) -> int
    func font_get_fixed_size_scale_mode(font_rid: RID) -> enum FixedSizeScaleMode
    func font_get_generate_mipmaps(font_rid: RID) -> bool
    func font_get_global_oversampling() -> float
    func font_get_glyph_advance(font_rid: RID, size: int, glyph: int) -> Vector2
    func font_get_glyph_contours(font: RID, size: int, index: int) -> Dictionary
    func font_get_glyph_index(font_rid: RID, size: int, char: int, variation_selector: int) -> int
    func font_get_glyph_list(font_rid: RID, size: Vector2i) -> PackedInt32Array
    func font_get_glyph_offset(font_rid: RID, size: Vector2i, glyph: int) -> Vector2
    func font_get_glyph_size(font_rid: RID, size: Vector2i, glyph: int) -> Vector2
    func font_get_glyph_texture_idx(font_rid: RID, size: Vector2i, glyph: int) -> int
    func font_get_glyph_texture_rid(font_rid: RID, size: Vector2i, glyph: int) -> RID
    func font_get_glyph_texture_size(font_rid: RID, size: Vector2i, glyph: int) -> Vector2
    func font_get_glyph_uv_rect(font_rid: RID, size: Vector2i, glyph: int) -> Rect2
    func font_get_hinting(font_rid: RID) -> enum Hinting
    func font_get_kerning(font_rid: RID, size: int, glyph_pair: Vector2i) -> Vector2
    func font_get_kerning_list(font_rid: RID, size: int) -> Array[Vector2i]
    func font_get_language_support_override(font_rid: RID, language: String) -> bool
    func font_get_language_support_overrides(font_rid: RID) -> PackedStringArray
    func font_get_msdf_pixel_range(font_rid: RID) -> int
    func font_get_msdf_size(font_rid: RID) -> int
    func font_get_name(font_rid: RID) -> String
    func font_get_opentype_feature_overrides(font_rid: RID) -> Dictionary
    func font_get_ot_name_strings(font_rid: RID) -> Dictionary
    func font_get_oversampling(font_rid: RID) -> float
    func font_get_scale(font_rid: RID, size: int) -> float
    func font_get_script_support_override(font_rid: RID, script: String) -> bool
    func font_get_script_support_overrides(font_rid: RID) -> PackedStringArray
    func font_get_size_cache_list(font_rid: RID) -> Array[Vector2i]
    func font_get_spacing(font_rid: RID, spacing: enum SpacingType) -> int
    func font_get_stretch(font_rid: RID) -> int
    func font_get_style(font_rid: RID) -> enum FontStyle
    func font_get_style_name(font_rid: RID) -> String
    func font_get_subpixel_positioning(font_rid: RID) -> enum SubpixelPositioning
    func font_get_supported_chars(font_rid: RID) -> String
    func font_get_texture_count(font_rid: RID, size: Vector2i) -> int
    func font_get_texture_image(font_rid: RID, size: Vector2i, texture_index: int) -> Image
    func font_get_texture_offsets(font_rid: RID, size: Vector2i, texture_index: int) -> PackedInt32Array
    func font_get_transform(font_rid: RID) -> Transform2D
    func font_get_underline_position(font_rid: RID, size: int) -> float
    func font_get_underline_thickness(font_rid: RID, size: int) -> float
    func font_get_variation_coordinates(font_rid: RID) -> Dictionary
    func font_get_weight(font_rid: RID) -> int
    func font_has_char(font_rid: RID, char: int) -> bool
    func font_is_allow_system_fallback(font_rid: RID) -> bool
    func font_is_force_autohinter(font_rid: RID) -> bool
    func font_is_language_supported(font_rid: RID, language: String) -> bool
    func font_is_multichannel_signed_distance_field(font_rid: RID) -> bool
    func font_is_script_supported(font_rid: RID, script: String) -> bool
    func font_remove_glyph(font_rid: RID, size: Vector2i, glyph: int)
    func font_remove_kerning(font_rid: RID, size: int, glyph_pair: Vector2i)
    func font_remove_language_support_override(font_rid: RID, language: String)
    func font_remove_script_support_override(font_rid: RID, script: String)
    func font_remove_size_cache(font_rid: RID, size: Vector2i)
    func font_remove_texture(font_rid: RID, size: Vector2i, texture_index: int)
    func font_render_glyph(font_rid: RID, size: Vector2i, index: int)
    func font_render_range(font_rid: RID, size: Vector2i, start: int, end: int)
    func font_set_allow_system_fallback(font_rid: RID, allow_system_fallback: bool)
    func font_set_antialiasing(font_rid: RID, antialiasing: enum FontAntialiasing)
    func font_set_ascent(font_rid: RID, size: int, ascent: float)
    func font_set_data(font_rid: RID, data: PackedByteArray)
    func font_set_descent(font_rid: RID, size: int, descent: float)
    func font_set_embolden(font_rid: RID, strength: float)
    func font_set_face_index(font_rid: RID, face_index: int)
    func font_set_fixed_size(font_rid: RID, fixed_size: int)
    func font_set_fixed_size_scale_mode(font_rid: RID, fixed_size_scale_mode: enum FixedSizeScaleMode)
    func font_set_force_autohinter(font_rid: RID, force_autohinter: bool)
    func font_set_generate_mipmaps(font_rid: RID, generate_mipmaps: bool)
    func font_set_global_oversampling(oversampling: float)
    func font_set_glyph_advance(font_rid: RID, size: int, glyph: int, advance: Vector2)
    func font_set_glyph_offset(font_rid: RID, size: Vector2i, glyph: int, offset: Vector2)
    func font_set_glyph_size(font_rid: RID, size: Vector2i, glyph: int, gl_size: Vector2)
    func font_set_glyph_texture_idx(font_rid: RID, size: Vector2i, glyph: int, texture_idx: int)
    func font_set_glyph_uv_rect(font_rid: RID, size: Vector2i, glyph: int, uv_rect: Rect2)
    func font_set_hinting(font_rid: RID, hinting: enum Hinting)
    func font_set_kerning(font_rid: RID, size: int, glyph_pair: Vector2i, kerning: Vector2)
    func font_set_language_support_override(font_rid: RID, language: String, supported: bool)
    func font_set_msdf_pixel_range(font_rid: RID, msdf_pixel_range: int)
    func font_set_msdf_size(font_rid: RID, msdf_size: int)
    func font_set_multichannel_signed_distance_field(font_rid: RID, msdf: bool)
    func font_set_name(font_rid: RID, name: String)
    func font_set_opentype_feature_overrides(font_rid: RID, overrides: Dictionary)
    func font_set_oversampling(font_rid: RID, oversampling: float)
    func font_set_scale(font_rid: RID, size: int, scale: float)
    func font_set_script_support_override(font_rid: RID, script: String, supported: bool)
    func font_set_spacing(font_rid: RID, spacing: enum SpacingType, value: int)
    func font_set_stretch(font_rid: RID, weight: int)
    func font_set_style(font_rid: RID, style: enum FontStyle)
    func font_set_style_name(font_rid: RID, name: String)
    func font_set_subpixel_positioning(font_rid: RID, subpixel_positioning: enum SubpixelPositioning)
    func font_set_texture_image(font_rid: RID, size: Vector2i, texture_index: int, image: Image)
    func font_set_texture_offsets(font_rid: RID, size: Vector2i, texture_index: int, offset: PackedInt32Array)
    func font_set_transform(font_rid: RID, transform: Transform2D)
    func font_set_underline_position(font_rid: RID, size: int, underline_position: float)
    func font_set_underline_thickness(font_rid: RID, size: int, underline_thickness: float)
    func font_set_variation_coordinates(font_rid: RID, variation_coordinates: Dictionary)
    func font_set_weight(font_rid: RID, weight: int)
    func font_supported_feature_list(font_rid: RID) -> Dictionary
    func font_supported_variation_list(font_rid: RID) -> Dictionary
    func format_number(number: String, language: String = "") -> String
    func free_rid(rid: RID)
    func get_features() -> int
    func get_hex_code_box_size(size: int, index: int) -> Vector2
    func get_name() -> String
    func get_support_data_filename() -> String
    func get_support_data_info() -> String
    func has(rid: RID) -> bool
    func has_feature(feature: enum Feature) -> bool
    func is_confusable(string: String, dict: PackedStringArray) -> int
    func is_locale_right_to_left(locale: String) -> bool
    func is_valid_identifier(string: String) -> bool
    func load_support_data(filename: String) -> bool
    func name_to_tag(name: String) -> int
    func parse_number(number: String, language: String = "") -> String
    func parse_structured_text(parser_type: enum StructuredTextParser, args: Array, text: String) -> Array[Vector3i]
    func percent_sign(language: String = "") -> String
    func save_support_data(filename: String) -> bool
    func shaped_get_span_count(shaped: RID) -> int
    func shaped_get_span_meta(shaped: RID, index: int) -> Variant
    func shaped_set_span_update_font(shaped: RID, index: int, fonts: Array[RID], size: int, opentype_features: Dictionary = {})
    func shaped_text_add_object(shaped: RID, key: Variant, size: Vector2, inline_align: enum InlineAlignment = INLINE_ALIGNMENT_CENTER, length: int = 1, baseline: float = 0.0) -> bool
    func shaped_text_add_string(shaped: RID, text: String, fonts: Array[RID], size: int, opentype_features: Dictionary = {}, language: String = "", meta: Variant = null) -> bool
    func shaped_text_clear(rid: RID)
    func shaped_text_closest_character_pos(shaped: RID, pos: int) -> int
    func shaped_text_draw(shaped: RID, canvas: RID, pos: Vector2, clip_l: float = -1, clip_r: float = -1, color: Color = Color(1, 1, 1, 1))
    func shaped_text_draw_outline(shaped: RID, canvas: RID, pos: Vector2, clip_l: float = -1, clip_r: float = -1, outline_size: int = 1, color: Color = Color(1, 1, 1, 1))
    func shaped_text_fit_to_width(shaped: RID, width: float, justification_flags: enum JustificationFlag = JUSTIFICATION_KASHIDA & JUSTIFICATION_WORD_BOUND) -> float
    func shaped_text_get_ascent(shaped: RID) -> float
    func shaped_text_get_carets(shaped: RID, position: int) -> Dictionary
    func shaped_text_get_character_breaks(shaped: RID) -> PackedInt32Array
    func shaped_text_get_custom_punctuation(shaped: RID) -> String
    func shaped_text_get_descent(shaped: RID) -> float
    func shaped_text_get_direction(shaped: RID) -> enum Direction
    func shaped_text_get_dominant_direction_in_range(shaped: RID, start: int, end: int) -> enum Direction
    func shaped_text_get_ellipsis_glyph_count(shaped: RID) -> int
    func shaped_text_get_ellipsis_glyphs(shaped: RID) -> Array[Dictionary]
    func shaped_text_get_ellipsis_pos(shaped: RID) -> int
    func shaped_text_get_glyph_count(shaped: RID) -> int
    func shaped_text_get_glyphs(shaped: RID) -> Array[Dictionary]
    func shaped_text_get_grapheme_bounds(shaped: RID, pos: int) -> Vector2
    func shaped_text_get_inferred_direction(shaped: RID) -> enum Direction
    func shaped_text_get_line_breaks(shaped: RID, width: float, start: int = 0, break_flags: enum LineBreakFlag = BREAK_MANDATORY & BREAK_WORD_BOUND) -> PackedInt32Array
    func shaped_text_get_line_breaks_adv(shaped: RID, width: PackedFloat32Array, start: int = 0, once: bool = true, break_flags: enum LineBreakFlag = BREAK_MANDATORY & BREAK_WORD_BOUND) -> PackedInt32Array
    func shaped_text_get_object_rect(shaped: RID, key: Variant) -> Rect2
    func shaped_text_get_objects(shaped: RID) -> Array
    func shaped_text_get_orientation(shaped: RID) -> enum Orientation
    func shaped_text_get_parent(shaped: RID) -> RID
    func shaped_text_get_preserve_control(shaped: RID) -> bool
    func shaped_text_get_preserve_invalid(shaped: RID) -> bool
    func shaped_text_get_range(shaped: RID) -> Vector2i
    func shaped_text_get_selection(shaped: RID, start: int, end: int) -> PackedVector2Array
    func shaped_text_get_size(shaped: RID) -> Vector2
    func shaped_text_get_spacing(shaped: RID, spacing: enum SpacingType) -> int
    func shaped_text_get_trim_pos(shaped: RID) -> int
    func shaped_text_get_underline_position(shaped: RID) -> float
    func shaped_text_get_underline_thickness(shaped: RID) -> float
    func shaped_text_get_width(shaped: RID) -> float
    func shaped_text_get_word_breaks(shaped: RID, grapheme_flags: enum GraphemeFlag = GRAPHEME_IS_SPACE & GRAPHEME_IS_PUNCTUATION) -> PackedInt32Array
    func shaped_text_has_visible_chars(shaped: RID) -> bool
    func shaped_text_hit_test_grapheme(shaped: RID, coords: float) -> int
    func shaped_text_hit_test_position(shaped: RID, coords: float) -> int
    func shaped_text_is_ready(shaped: RID) -> bool
    func shaped_text_next_character_pos(shaped: RID, pos: int) -> int
    func shaped_text_next_grapheme_pos(shaped: RID, pos: int) -> int
    func shaped_text_overrun_trim_to_width(shaped: RID, width: float = 0, overrun_trim_flags: enum TextOverrunFlag = OVERRUN_NO_TRIM)
    func shaped_text_prev_character_pos(shaped: RID, pos: int) -> int
    func shaped_text_prev_grapheme_pos(shaped: RID, pos: int) -> int
    func shaped_text_resize_object(shaped: RID, key: Variant, size: Vector2, inline_align: enum InlineAlignment = INLINE_ALIGNMENT_CENTER, baseline: float = 0.0) -> bool
    func shaped_text_set_bidi_override(shaped: RID, override: Array)
    func shaped_text_set_custom_punctuation(shaped: RID, punct: String)
    func shaped_text_set_direction(shaped: RID, direction: enum Direction = DIRECTION_AUTO)
    func shaped_text_set_orientation(shaped: RID, orientation: enum Orientation = ORIENTATION_HORIZONTAL)
    func shaped_text_set_preserve_control(shaped: RID, enabled: bool)
    func shaped_text_set_preserve_invalid(shaped: RID, enabled: bool)
    func shaped_text_set_spacing(shaped: RID, spacing: enum SpacingType, value: int)
    func shaped_text_shape(shaped: RID) -> bool
    func shaped_text_sort_logical(shaped: RID) -> Array[Dictionary]
    func shaped_text_substr(shaped: RID, start: int, length: int) -> RID
    func shaped_text_tab_align(shaped: RID, tab_stops: PackedFloat32Array) -> float
    func spoof_check(string: String) -> bool
    func string_get_character_breaks(string: String, language: String = "") -> PackedInt32Array
    func string_get_word_breaks(string: String, language: String = "", chars_per_line: int = 0) -> PackedInt32Array
    func string_to_lower(string: String, language: String = "") -> String
    func string_to_upper(string: String, language: String = "") -> String
    func strip_diacritics(string: String) -> String
    func tag_to_name(tag: int) -> String

# Object < RefCounted < Thread

  class Thread extends RefCounted:

    enum Priority {
      PRIORITY_LOW = 0,
      PRIORITY_NORMAL = 1,
      PRIORITY_HIGH = 2,
    }

    static func set_thread_safety_checks_enabled(enabled: bool)

    func get_id() -> String
    func is_alive() -> bool
    func is_started() -> bool
    func start(callable: Callable, priority: enum Priority = PRIORITY_NORMAL) -> enum Error
    func wait_to_finish() -> Variant

# Object < RefCounted < TLSOptions (abstract)

  class TLSOptions extends RefCounted:

    static func client(trusted_chain: X509Certificate = null, common_name_override: String = "") -> TLSOptions
    static func client_unsafe(trusted_chain: X509Certificate = null) -> TLSOptions
    static func server(key: CryptoKey, certificate: X509Certificate) -> TLSOptions

# Object < RefCounted < TriangleMesh

  class TriangleMesh extends RefCounted:

    pass 

# Object < RefCounted < Tween

  class Tween extends RefCounted:

    enum EaseType {
      EASE_IN = 0,
      EASE_OUT = 1,
      EASE_IN_OUT = 2,
      EASE_OUT_IN = 3,
    }

    enum TransitionType {
      TRANS_LINEAR = 0,
      TRANS_SINE = 1,
      TRANS_QUINT = 2,
      TRANS_QUART = 3,
      TRANS_QUAD = 4,
      TRANS_EXPO = 5,
      TRANS_ELASTIC = 6,
      TRANS_CUBIC = 7,
      TRANS_CIRC = 8,
      TRANS_BOUNCE = 9,
      TRANS_BACK = 10,
      TRANS_SPRING = 11,
    }

    enum TweenPauseMode {
      TWEEN_PAUSE_BOUND = 0,
      TWEEN_PAUSE_STOP = 1,
      TWEEN_PAUSE_PROCESS = 2,
    }

    enum TweenProcessMode {
      TWEEN_PROCESS_PHYSICS = 0,
      TWEEN_PROCESS_IDLE = 1,
    }

    static func interpolate_value(initial_value: Variant, delta_value: Variant, elapsed_time: float, duration: float, trans_type: enum TransitionType, ease_type: enum EaseType) -> Variant

    signal finished()
    signal loop_finished(loop_count: int)
    signal step_finished(idx: int)

    func bind_node(node: Node) -> Tween
    func chain() -> Tween
    func custom_step(delta: float) -> bool
    func get_loops_left() -> int
    func get_total_elapsed_time() -> float
    func is_running() -> bool
    func is_valid() -> bool
    func kill()
    func parallel() -> Tween
    func pause()
    func play()
    func set_ease(ease: enum EaseType) -> Tween
    func set_loops(loops: int = 0) -> Tween
    func set_parallel(parallel: bool = true) -> Tween
    func set_pause_mode(mode: enum TweenPauseMode) -> Tween
    func set_process_mode(mode: enum TweenProcessMode) -> Tween
    func set_speed_scale(speed: float) -> Tween
    func set_trans(trans: enum TransitionType) -> Tween
    func stop()
    func tween_callback(callback: Callable) -> CallbackTweener
    func tween_interval(time: float) -> IntervalTweener
    func tween_method(method: Callable, from: Variant, to: Variant, duration: float) -> MethodTweener
    func tween_property(object: Object, property: NodePath, final_val: Variant, duration: float) -> PropertyTweener

# Object < RefCounted < Tweener (abstract)

  class Tweener extends RefCounted:

    signal finished()

# Object < RefCounted < Tweener < CallbackTweener

  class CallbackTweener extends Tweener:

    func set_delay(delay: float) -> CallbackTweener

# Object < RefCounted < Tweener < IntervalTweener

  class IntervalTweener extends Tweener:

    pass 

# Object < RefCounted < Tweener < MethodTweener

  class MethodTweener extends Tweener:

    func set_delay(delay: float) -> MethodTweener
    func set_ease(ease: enum Tween.EaseType) -> MethodTweener
    func set_trans(trans: enum Tween.TransitionType) -> MethodTweener

# Object < RefCounted < Tweener < PropertyTweener

  class PropertyTweener extends Tweener:

    func as_relative() -> PropertyTweener
    func from(value: Variant) -> PropertyTweener
    func from_current() -> PropertyTweener
    func set_delay(delay: float) -> PropertyTweener
    func set_ease(ease: enum Tween.EaseType) -> PropertyTweener
    func set_trans(trans: enum Tween.TransitionType) -> PropertyTweener

# Object < RefCounted < UDPServer

  class UDPServer extends RefCounted:

    var max_pending_connections: int = 16

    func get_local_port() -> int
    func is_connection_available() -> bool
    func is_listening() -> bool
    func listen(port: int, bind_address: String = "*") -> enum Error
    func poll() -> enum Error
    func stop()
    func take_connection() -> PacketPeerUDP

# Object < RefCounted < WeakRef

  class WeakRef extends RefCounted:

    func get_ref() -> Variant

# Object < RefCounted < XMLParser

  class XMLParser extends RefCounted:

    enum NodeType {
      NODE_NONE = 0,
      NODE_ELEMENT = 1,
      NODE_ELEMENT_END = 2,
      NODE_TEXT = 3,
      NODE_COMMENT = 4,
      NODE_CDATA = 5,
      NODE_UNKNOWN = 6,
    }

    func get_attribute_count() -> int
    func get_attribute_name(idx: int) -> String
    func get_attribute_value(idx: int) -> String
    func get_current_line() -> int
    func get_named_attribute_value(name: String) -> String
    func get_named_attribute_value_safe(name: String) -> String
    func get_node_data() -> String
    func get_node_name() -> String
    func get_node_offset() -> int
    func get_node_type() -> enum NodeType
    func has_attribute(name: String) -> bool
    func is_empty() -> bool
    func open(file: String) -> enum Error
    func open_buffer(buffer: PackedByteArray) -> enum Error
    func read() -> enum Error
    func seek(position: int) -> enum Error
    func skip_section()

# Object < RefCounted < XRInterface (abstract)

  class XRInterface extends RefCounted:

    enum Capabilities {
      XR_NONE = 0,
      XR_MONO = 1,
      XR_STEREO = 2,
      XR_QUAD = 4,
      XR_VR = 8,
      XR_AR = 16,
      XR_EXTERNAL = 32,
    }

    enum EnvironmentBlendMode {
      XR_ENV_BLEND_MODE_OPAQUE = 0,
      XR_ENV_BLEND_MODE_ADDITIVE = 1,
      XR_ENV_BLEND_MODE_ALPHA_BLEND = 2,
    }

    enum PlayAreaMode {
      XR_PLAY_AREA_UNKNOWN = 0,
      XR_PLAY_AREA_3DOF = 1,
      XR_PLAY_AREA_SITTING = 2,
      XR_PLAY_AREA_ROOMSCALE = 3,
      XR_PLAY_AREA_STAGE = 4,
    }

    enum TrackingStatus {
      XR_NORMAL_TRACKING = 0,
      XR_EXCESSIVE_MOTION = 1,
      XR_INSUFFICIENT_FEATURES = 2,
      XR_UNKNOWN_TRACKING = 3,
      XR_NOT_TRACKING = 4,
    }

    var ar_is_anchor_detection_enabled: bool = false
    var environment_blend_mode: enum EnvironmentBlendMode = XR_ENV_BLEND_MODE_OPAQUE
    var interface_is_primary: bool = false
    var xr_play_area_mode: enum PlayAreaMode = XR_PLAY_AREA_UNKNOWN

    signal play_area_changed(mode: int)

    func get_camera_feed_id() -> int
    func get_capabilities() -> int
    func get_name() -> StringName
    func get_play_area() -> PackedVector3Array
    func get_projection_for_view(view: int, aspect: float, near: float, far: float) -> Projection
    func get_render_target_size() -> Vector2
    func get_supported_environment_blend_modes() -> Array
    func get_system_info() -> Dictionary
    func get_tracking_status() -> enum TrackingStatus
    func get_transform_for_view(view: int, cam_transform: Transform3D) -> Transform3D
    func get_view_count() -> int
    func initialize() -> bool
    func is_initialized() -> bool
    func is_passthrough_enabled() -> bool
    func is_passthrough_supported() -> bool
    func set_environment_blend_mode(mode: enum EnvironmentBlendMode) -> bool
    func set_play_area_mode(mode: enum PlayAreaMode) -> bool
    func start_passthrough() -> bool
    func stop_passthrough()
    func supports_play_area_mode(mode: enum PlayAreaMode) -> bool
    func trigger_haptic_pulse(action_name: String, tracker_name: StringName, frequency: float, amplitude: float, duration_sec: float, delay_sec: float)
    func uninitialize()

# Object < RefCounted < XRPose

  class XRPose extends RefCounted:

    enum TrackingConfidence {
      XR_TRACKING_CONFIDENCE_NONE = 0,
      XR_TRACKING_CONFIDENCE_LOW = 1,
      XR_TRACKING_CONFIDENCE_HIGH = 2,
    }

    var angular_velocity: Vector3 = Vector3(0, 0, 0)
    var has_tracking_data: bool = false
    var linear_velocity: Vector3 = Vector3(0, 0, 0)
    var name: StringName = ""
    var tracking_confidence: enum TrackingConfidence = XR_TRACKING_CONFIDENCE_NONE
    var transform: Transform3D = Transform3D(Vector3(1, 0, 0), Vector3(0, 1, 0), Vector3(0, 0, 1), Vector3(0, 0, 0))

    func get_adjusted_transform() -> Transform3D

# Object < RefCounted < XRPositionalTracker

  class XRPositionalTracker extends RefCounted:

    enum TrackerHand {
      TRACKER_HAND_UNKNOWN = 0,
      TRACKER_HAND_LEFT = 1,
      TRACKER_HAND_RIGHT = 2,
    }

    var description: String = ""
    var hand: enum TrackerHand = TRACKER_HAND_UNKNOWN
    var name: StringName = "Unknown"
    var profile: String = ""
    var type: enum XRServer.TrackerType = XRServer.TRACKER_UNKNOWN

    signal button_pressed(name: String)
    signal button_released(name: String)
    signal input_float_changed(name: String, value: float)
    signal input_vector2_changed(name: String, vector: Vector2)
    signal pose_changed(pose: XRPose)
    signal pose_lost_tracking(pose: XRPose)
    signal profile_changed(role: String)

    func get_input(name: StringName) -> Variant
    func get_pose(name: StringName) -> XRPose
    func has_pose(name: StringName) -> bool
    func invalidate_pose(name: StringName)
    func set_input(name: StringName, value: Variant)
    func set_pose(name: StringName, transform: Transform3D, linear_velocity: Vector3, angular_velocity: Vector3, tracking_confidence: enum XRPose.TrackingConfidence)

# Object < AudioServer (singleton)

  class AudioServer extends Object:

    enum SpeakerMode {
      SPEAKER_MODE_STEREO = 0,
      SPEAKER_SURROUND_31 = 1,
      SPEAKER_SURROUND_51 = 2,
      SPEAKER_SURROUND_71 = 3,
    }

    var bus_count: int = 1
    var input_device: String = "Default"
    var output_device: String = "Default"
    var playback_speed_scale: float = 1.0

    signal bus_layout_changed()
    signal bus_renamed(bus_index: int, old_name: StringName, new_name: StringName)

    func add_bus(at_position: int = -1)
    func add_bus_effect(bus_idx: int, effect: AudioEffect, at_position: int = -1)
    func generate_bus_layout() -> AudioBusLayout
    func get_bus_channels(bus_idx: int) -> int
    func get_bus_effect(bus_idx: int, effect_idx: int) -> AudioEffect
    func get_bus_effect_count(bus_idx: int) -> int
    func get_bus_effect_instance(bus_idx: int, effect_idx: int, channel: int = 0) -> AudioEffectInstance
    func get_bus_index(bus_name: StringName) -> int
    func get_bus_name(bus_idx: int) -> String
    func get_bus_peak_volume_left_db(bus_idx: int, channel: int) -> float
    func get_bus_peak_volume_right_db(bus_idx: int, channel: int) -> float
    func get_bus_send(bus_idx: int) -> StringName
    func get_bus_volume_db(bus_idx: int) -> float
    func get_input_device_list() -> PackedStringArray
    func get_mix_rate() -> float
    func get_output_device_list() -> PackedStringArray
    func get_output_latency() -> float
    func get_speaker_mode() -> enum SpeakerMode
    func get_time_since_last_mix() -> float
    func get_time_to_next_mix() -> float
    func is_bus_bypassing_effects(bus_idx: int) -> bool
    func is_bus_effect_enabled(bus_idx: int, effect_idx: int) -> bool
    func is_bus_mute(bus_idx: int) -> bool
    func is_bus_solo(bus_idx: int) -> bool
    func lock()
    func move_bus(index: int, to_index: int)
    func remove_bus(index: int)
    func remove_bus_effect(bus_idx: int, effect_idx: int)
    func set_bus_bypass_effects(bus_idx: int, enable: bool)
    func set_bus_effect_enabled(bus_idx: int, effect_idx: int, enabled: bool)
    func set_bus_layout(bus_layout: AudioBusLayout)
    func set_bus_mute(bus_idx: int, enable: bool)
    func set_bus_name(bus_idx: int, name: String)
    func set_bus_send(bus_idx: int, send: StringName)
    func set_bus_solo(bus_idx: int, enable: bool)
    func set_bus_volume_db(bus_idx: int, volume_db: float)
    func set_enable_tagging_used_audio_streams(enable: bool)
    func swap_bus_effects(bus_idx: int, effect_idx: int, by_effect_idx: int)
    func unlock()

# Object < CameraServer (singleton)

  class CameraServer extends Object:

    enum FeedImage {
      FEED_RGBA_IMAGE = 0,
      FEED_CBCR_IMAGE = 1,
    }

    signal camera_feed_added(id: int)
    signal camera_feed_removed(id: int)

    func add_feed(feed: CameraFeed)
    func feeds() -> Array[CameraFeed]
    func get_feed(index: int) -> CameraFeed
    func get_feed_count() -> int
    func remove_feed(feed: CameraFeed)

# Object < ClassDB (singleton)

  class ClassDB extends Object:

    func can_instantiate(class: StringName) -> bool
    func class_exists(class: StringName) -> bool
    func class_get_enum_constants(class: StringName, enum: StringName, no_inheritance: bool = false) -> PackedStringArray
    func class_get_enum_list(class: StringName, no_inheritance: bool = false) -> PackedStringArray
    func class_get_integer_constant(class: StringName, name: StringName) -> int
    func class_get_integer_constant_enum(class: StringName, name: StringName, no_inheritance: bool = false) -> StringName
    func class_get_integer_constant_list(class: StringName, no_inheritance: bool = false) -> PackedStringArray
    func class_get_method_list(class: StringName, no_inheritance: bool = false) -> Array[Dictionary]
    func class_get_property(object: Object, property: StringName) -> Variant
    func class_get_property_list(class: StringName, no_inheritance: bool = false) -> Array[Dictionary]
    func class_get_signal(class: StringName, signal: StringName) -> Dictionary
    func class_get_signal_list(class: StringName, no_inheritance: bool = false) -> Array[Dictionary]
    func class_has_enum(class: StringName, name: StringName, no_inheritance: bool = false) -> bool
    func class_has_integer_constant(class: StringName, name: StringName) -> bool
    func class_has_method(class: StringName, method: StringName, no_inheritance: bool = false) -> bool
    func class_has_signal(class: StringName, signal: StringName) -> bool
    func class_set_property(object: Object, property: StringName, value: Variant) -> enum Error
    func get_class_list() -> PackedStringArray
    func get_inheriters_from_class(class: StringName) -> PackedStringArray
    func get_parent_class(class: StringName) -> StringName
    func instantiate(class: StringName) -> Variant
    func is_class_enabled(class: StringName) -> bool
    func is_parent_class(class: StringName, inherits: StringName) -> bool

# Object < DisplayServer (singleton)

  class DisplayServer extends Object:

    const INVALID_WINDOW_ID = -1
    const MAIN_WINDOW_ID = 0
    const SCREEN_OF_MAIN_WINDOW = -1
    const SCREEN_PRIMARY = -2
    const SCREEN_WITH_KEYBOARD_FOCUS = -3
    const SCREEN_WITH_MOUSE_FOCUS = -4

    enum CursorShape {
      CURSOR_ARROW = 0,
      CURSOR_IBEAM = 1,
      CURSOR_POINTING_HAND = 2,
      CURSOR_CROSS = 3,
      CURSOR_WAIT = 4,
      CURSOR_BUSY = 5,
      CURSOR_DRAG = 6,
      CURSOR_CAN_DROP = 7,
      CURSOR_FORBIDDEN = 8,
      CURSOR_VSIZE = 9,
      CURSOR_HSIZE = 10,
      CURSOR_BDIAGSIZE = 11,
      CURSOR_FDIAGSIZE = 12,
      CURSOR_MOVE = 13,
      CURSOR_VSPLIT = 14,
      CURSOR_HSPLIT = 15,
      CURSOR_HELP = 16,
      CURSOR_MAX = 17,
    }

    enum Feature {
      FEATURE_GLOBAL_MENU = 0,
      FEATURE_SUBWINDOWS = 1,
      FEATURE_TOUCHSCREEN = 2,
      FEATURE_MOUSE = 3,
      FEATURE_MOUSE_WARP = 4,
      FEATURE_CLIPBOARD = 5,
      FEATURE_VIRTUAL_KEYBOARD = 6,
      FEATURE_CURSOR_SHAPE = 7,
      FEATURE_CUSTOM_CURSOR_SHAPE = 8,
      FEATURE_NATIVE_DIALOG = 9,
      FEATURE_IME = 10,
      FEATURE_WINDOW_TRANSPARENCY = 11,
      FEATURE_HIDPI = 12,
      FEATURE_ICON = 13,
      FEATURE_NATIVE_ICON = 14,
      FEATURE_ORIENTATION = 15,
      FEATURE_SWAP_BUFFERS = 16,
      FEATURE_CLIPBOARD_PRIMARY = 18,
      FEATURE_TEXT_TO_SPEECH = 19,
      FEATURE_EXTEND_TO_TITLE = 20,
      FEATURE_SCREEN_CAPTURE = 21,
    }

    enum FileDialogMode {
      FILE_DIALOG_MODE_OPEN_FILE = 0,
      FILE_DIALOG_MODE_OPEN_FILES = 1,
      FILE_DIALOG_MODE_OPEN_DIR = 2,
      FILE_DIALOG_MODE_OPEN_ANY = 3,
      FILE_DIALOG_MODE_SAVE_FILE = 4,
    }

    enum HandleType {
      DISPLAY_HANDLE = 0,
      WINDOW_HANDLE = 1,
      WINDOW_VIEW = 2,
      OPENGL_CONTEXT = 3,
    }

    enum MouseMode {
      MOUSE_MODE_VISIBLE = 0,
      MOUSE_MODE_HIDDEN = 1,
      MOUSE_MODE_CAPTURED = 2,
      MOUSE_MODE_CONFINED = 3,
      MOUSE_MODE_CONFINED_HIDDEN = 4,
    }

    enum ScreenOrientation {
      SCREEN_LANDSCAPE = 0,
      SCREEN_PORTRAIT = 1,
      SCREEN_REVERSE_LANDSCAPE = 2,
      SCREEN_REVERSE_PORTRAIT = 3,
      SCREEN_SENSOR_LANDSCAPE = 4,
      SCREEN_SENSOR_PORTRAIT = 5,
      SCREEN_SENSOR = 6,
    }

    enum TTSUtteranceEvent {
      TTS_UTTERANCE_STARTED = 0,
      TTS_UTTERANCE_ENDED = 1,
      TTS_UTTERANCE_CANCELED = 2,
      TTS_UTTERANCE_BOUNDARY = 3,
    }

    enum VirtualKeyboardType {
      KEYBOARD_TYPE_DEFAULT = 0,
      KEYBOARD_TYPE_MULTILINE = 1,
      KEYBOARD_TYPE_NUMBER = 2,
      KEYBOARD_TYPE_NUMBER_DECIMAL = 3,
      KEYBOARD_TYPE_PHONE = 4,
      KEYBOARD_TYPE_EMAIL_ADDRESS = 5,
      KEYBOARD_TYPE_PASSWORD = 6,
      KEYBOARD_TYPE_URL = 7,
    }

    enum VSyncMode {
      VSYNC_DISABLED = 0,
      VSYNC_ENABLED = 1,
      VSYNC_ADAPTIVE = 2,
      VSYNC_MAILBOX = 3,
    }

    enum WindowEvent {
      WINDOW_EVENT_MOUSE_ENTER = 0,
      WINDOW_EVENT_MOUSE_EXIT = 1,
      WINDOW_EVENT_FOCUS_IN = 2,
      WINDOW_EVENT_FOCUS_OUT = 3,
      WINDOW_EVENT_CLOSE_REQUEST = 4,
      WINDOW_EVENT_GO_BACK_REQUEST = 5,
      WINDOW_EVENT_DPI_CHANGE = 6,
      WINDOW_EVENT_TITLEBAR_CHANGE = 7,
    }

    enum WindowFlags {
      WINDOW_FLAG_RESIZE_DISABLED = 0,
      WINDOW_FLAG_BORDERLESS = 1,
      WINDOW_FLAG_ALWAYS_ON_TOP = 2,
      WINDOW_FLAG_TRANSPARENT = 3,
      WINDOW_FLAG_NO_FOCUS = 4,
      WINDOW_FLAG_POPUP = 5,
      WINDOW_FLAG_EXTEND_TO_TITLE = 6,
      WINDOW_FLAG_MOUSE_PASSTHROUGH = 7,
      WINDOW_FLAG_MAX = 8,
    }

    enum WindowMode {
      WINDOW_MODE_WINDOWED = 0,
      WINDOW_MODE_MINIMIZED = 1,
      WINDOW_MODE_MAXIMIZED = 2,
      WINDOW_MODE_FULLSCREEN = 3,
      WINDOW_MODE_EXCLUSIVE_FULLSCREEN = 4,
    }

    func clipboard_get() -> String
    func clipboard_get_image() -> Image
    func clipboard_get_primary() -> String
    func clipboard_has() -> bool
    func clipboard_has_image() -> bool
    func clipboard_set(clipboard: String)
    func clipboard_set_primary(clipboard_primary: String)
    func cursor_get_shape() -> enum CursorShape
    func cursor_set_custom_image(cursor: Resource, shape: enum CursorShape = CURSOR_ARROW, hotspot: Vector2 = Vector2(0, 0))
    func cursor_set_shape(shape: enum CursorShape)
    func dialog_input_text(title: String, description: String, existing_text: String, callback: Callable) -> enum Error
    func dialog_show(title: String, description: String, buttons: PackedStringArray, callback: Callable) -> enum Error
    func enable_for_stealing_focus(process_id: int)
    func file_dialog_show(title: String, current_directory: String, filename: String, show_hidden: bool, mode: enum FileDialogMode, filters: PackedStringArray, callback: Callable) -> enum Error
    func force_process_and_drop_events()
    func get_accent_color() -> Color
    func get_display_cutouts() -> Array[Rect2]
    func get_display_safe_area() -> Rect2i
    func get_keyboard_focus_screen() -> int
    func get_name() -> String
    func get_primary_screen() -> int
    func get_screen_count() -> int
    func get_screen_from_rect(rect: Rect2) -> int
    func get_swap_cancel_ok() -> bool
    func get_window_at_screen_position(position: Vector2i) -> int
    func get_window_list() -> PackedInt32Array
    func global_menu_add_check_item(menu_root: String, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: enum Key = KEY_NONE, index: int = -1) -> int
    func global_menu_add_icon_check_item(menu_root: String, icon: Texture2D, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: enum Key = KEY_NONE, index: int = -1) -> int
    func global_menu_add_icon_item(menu_root: String, icon: Texture2D, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: enum Key = KEY_NONE, index: int = -1) -> int
    func global_menu_add_icon_radio_check_item(menu_root: String, icon: Texture2D, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: enum Key = KEY_NONE, index: int = -1) -> int
    func global_menu_add_item(menu_root: String, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: enum Key = KEY_NONE, index: int = -1) -> int
    func global_menu_add_multistate_item(menu_root: String, label: String, max_states: int, default_state: int, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: enum Key = KEY_NONE, index: int = -1) -> int
    func global_menu_add_radio_check_item(menu_root: String, label: String, callback: Callable = Callable(), key_callback: Callable = Callable(), tag: Variant = null, accelerator: enum Key = KEY_NONE, index: int = -1) -> int
    func global_menu_add_separator(menu_root: String, index: int = -1) -> int
    func global_menu_add_submenu_item(menu_root: String, label: String, submenu: String, index: int = -1) -> int
    func global_menu_clear(menu_root: String)
    func global_menu_get_item_accelerator(menu_root: String, idx: int) -> enum Key
    func global_menu_get_item_callback(menu_root: String, idx: int) -> Callable
    func global_menu_get_item_count(menu_root: String) -> int
    func global_menu_get_item_icon(menu_root: String, idx: int) -> Texture2D
    func global_menu_get_item_indentation_level(menu_root: String, idx: int) -> int
    func global_menu_get_item_index_from_tag(menu_root: String, tag: Variant) -> int
    func global_menu_get_item_index_from_text(menu_root: String, text: String) -> int
    func global_menu_get_item_key_callback(menu_root: String, idx: int) -> Callable
    func global_menu_get_item_max_states(menu_root: String, idx: int) -> int
    func global_menu_get_item_state(menu_root: String, idx: int) -> int
    func global_menu_get_item_submenu(menu_root: String, idx: int) -> String
    func global_menu_get_item_tag(menu_root: String, idx: int) -> Variant
    func global_menu_get_item_text(menu_root: String, idx: int) -> String
    func global_menu_get_item_tooltip(menu_root: String, idx: int) -> String
    func global_menu_is_item_checkable(menu_root: String, idx: int) -> bool
    func global_menu_is_item_checked(menu_root: String, idx: int) -> bool
    func global_menu_is_item_disabled(menu_root: String, idx: int) -> bool
    func global_menu_is_item_hidden(menu_root: String, idx: int) -> bool
    func global_menu_is_item_radio_checkable(menu_root: String, idx: int) -> bool
    func global_menu_remove_item(menu_root: String, idx: int)
    func global_menu_set_item_accelerator(menu_root: String, idx: int, keycode: enum Key)
    func global_menu_set_item_callback(menu_root: String, idx: int, callback: Callable)
    func global_menu_set_item_checkable(menu_root: String, idx: int, checkable: bool)
    func global_menu_set_item_checked(menu_root: String, idx: int, checked: bool)
    func global_menu_set_item_disabled(menu_root: String, idx: int, disabled: bool)
    func global_menu_set_item_hidden(menu_root: String, idx: int, hidden: bool)
    func global_menu_set_item_hover_callbacks(menu_root: String, idx: int, callback: Callable)
    func global_menu_set_item_icon(menu_root: String, idx: int, icon: Texture2D)
    func global_menu_set_item_indentation_level(menu_root: String, idx: int, level: int)
    func global_menu_set_item_key_callback(menu_root: String, idx: int, key_callback: Callable)
    func global_menu_set_item_max_states(menu_root: String, idx: int, max_states: int)
    func global_menu_set_item_radio_checkable(menu_root: String, idx: int, checkable: bool)
    func global_menu_set_item_state(menu_root: String, idx: int, state: int)
    func global_menu_set_item_submenu(menu_root: String, idx: int, submenu: String)
    func global_menu_set_item_tag(menu_root: String, idx: int, tag: Variant)
    func global_menu_set_item_text(menu_root: String, idx: int, text: String)
    func global_menu_set_item_tooltip(menu_root: String, idx: int, tooltip: String)
    func global_menu_set_popup_callbacks(menu_root: String, open_callback: Callable, close_callback: Callable)
    func has_feature(feature: enum Feature) -> bool
    func ime_get_selection() -> Vector2i
    func ime_get_text() -> String
    func is_dark_mode() -> bool
    func is_dark_mode_supported() -> bool
    func is_touchscreen_available() -> bool
    func keyboard_get_current_layout() -> int
    func keyboard_get_keycode_from_physical(keycode: enum Key) -> enum Key
    func keyboard_get_label_from_physical(keycode: enum Key) -> enum Key
    func keyboard_get_layout_count() -> int
    func keyboard_get_layout_language(index: int) -> String
    func keyboard_get_layout_name(index: int) -> String
    func keyboard_set_current_layout(index: int)
    func mouse_get_button_state() -> enum MouseButtonMask
    func mouse_get_mode() -> enum MouseMode
    func mouse_get_position() -> Vector2i
    func mouse_set_mode(mouse_mode: enum MouseMode)
    func process_events()
    func screen_get_dpi(screen: int = -1) -> int
    func screen_get_image(screen: int = -1) -> Image
    func screen_get_max_scale() -> float
    func screen_get_orientation(screen: int = -1) -> enum ScreenOrientation
    func screen_get_pixel(position: Vector2i) -> Color
    func screen_get_position(screen: int = -1) -> Vector2i
    func screen_get_refresh_rate(screen: int = -1) -> float
    func screen_get_scale(screen: int = -1) -> float
    func screen_get_size(screen: int = -1) -> Vector2i
    func screen_get_usable_rect(screen: int = -1) -> Rect2i
    func screen_is_kept_on() -> bool
    func screen_set_keep_on(enable: bool)
    func screen_set_orientation(orientation: enum ScreenOrientation, screen: int = -1)
    func set_icon(image: Image)
    func set_native_icon(filename: String)
    func tablet_get_current_driver() -> String
    func tablet_get_driver_count() -> int
    func tablet_get_driver_name(idx: int) -> String
    func tablet_set_current_driver(name: String)
    func tts_get_voices() -> Array[Dictionary]
    func tts_get_voices_for_language(language: String) -> PackedStringArray
    func tts_is_paused() -> bool
    func tts_is_speaking() -> bool
    func tts_pause()
    func tts_resume()
    func tts_set_utterance_callback(event: enum TTSUtteranceEvent, callable: Callable)
    func tts_speak(text: String, voice: String, volume: int = 50, pitch: float = 1.0, rate: float = 1.0, utterance_id: int = 0, interrupt: bool = false)
    func tts_stop()
    func virtual_keyboard_get_height() -> int
    func virtual_keyboard_hide()
    func virtual_keyboard_show(existing_text: String, position: Rect2 = Rect2(0, 0, 0, 0), type: enum VirtualKeyboardType = KEYBOARD_TYPE_DEFAULT, max_length: int = -1, cursor_start: int = -1, cursor_end: int = -1)
    func warp_mouse(position: Vector2i)
    func window_can_draw(window_id: int = 0) -> bool
    func window_get_active_popup() -> int
    func window_get_attached_instance_id(window_id: int = 0) -> int
    func window_get_current_screen(window_id: int = 0) -> int
    func window_get_flag(flag: enum WindowFlags, window_id: int = 0) -> bool
    func window_get_max_size(window_id: int = 0) -> Vector2i
    func window_get_min_size(window_id: int = 0) -> Vector2i
    func window_get_mode(window_id: int = 0) -> enum WindowMode
    func window_get_native_handle(handle_type: enum HandleType, window_id: int = 0) -> int
    func window_get_popup_safe_rect(window: int) -> Rect2i
    func window_get_position(window_id: int = 0) -> Vector2i
    func window_get_position_with_decorations(window_id: int = 0) -> Vector2i
    func window_get_safe_title_margins(window_id: int = 0) -> Vector3i
    func window_get_size(window_id: int = 0) -> Vector2i
    func window_get_size_with_decorations(window_id: int = 0) -> Vector2i
    func window_get_title_size(title: String, window_id: int = 0) -> Vector2i
    func window_get_vsync_mode(window_id: int = 0) -> enum VSyncMode
    func window_is_focused(window_id: int = 0) -> bool
    func window_is_maximize_allowed(window_id: int = 0) -> bool
    func window_maximize_on_title_dbl_click() -> bool
    func window_minimize_on_title_dbl_click() -> bool
    func window_move_to_foreground(window_id: int = 0)
    func window_request_attention(window_id: int = 0)
    func window_set_current_screen(screen: int, window_id: int = 0)
    func window_set_drop_files_callback(callback: Callable, window_id: int = 0)
    func window_set_exclusive(window_id: int, exclusive: bool)
    func window_set_flag(flag: enum WindowFlags, enabled: bool, window_id: int = 0)
    func window_set_ime_active(active: bool, window_id: int = 0)
    func window_set_ime_position(position: Vector2i, window_id: int = 0)
    func window_set_input_event_callback(callback: Callable, window_id: int = 0)
    func window_set_input_text_callback(callback: Callable, window_id: int = 0)
    func window_set_max_size(max_size: Vector2i, window_id: int = 0)
    func window_set_min_size(min_size: Vector2i, window_id: int = 0)
    func window_set_mode(mode: enum WindowMode, window_id: int = 0)
    func window_set_mouse_passthrough(region: PackedVector2Array, window_id: int = 0)
    func window_set_popup_safe_rect(window: int, rect: Rect2i)
    func window_set_position(position: Vector2i, window_id: int = 0)
    func window_set_rect_changed_callback(callback: Callable, window_id: int = 0)
    func window_set_size(size: Vector2i, window_id: int = 0)
    func window_set_title(title: String, window_id: int = 0)
    func window_set_transient(window_id: int, parent_window_id: int)
    func window_set_vsync_mode(vsync_mode: enum VSyncMode, window_id: int = 0)
    func window_set_window_buttons_offset(offset: Vector2i, window_id: int = 0)
    func window_set_window_event_callback(callback: Callable, window_id: int = 0)

# Object < Engine (singleton)

  class Engine extends Object:

    var max_fps: int = 0
    var max_physics_steps_per_frame: int = 8
    var physics_jitter_fix: float = 0.5
    var physics_ticks_per_second: int = 60
    var print_error_messages: bool = true
    var time_scale: float = 1.0

    func get_architecture_name() -> String
    func get_author_info() -> Dictionary
    func get_copyright_info() -> Array[Dictionary]
    func get_donor_info() -> Dictionary
    func get_frames_drawn() -> int
    func get_frames_per_second() -> float
    func get_license_info() -> Dictionary
    func get_license_text() -> String
    func get_main_loop() -> MainLoop
    func get_physics_frames() -> int
    func get_physics_interpolation_fraction() -> float
    func get_process_frames() -> int
    func get_script_language(index: int) -> ScriptLanguage
    func get_script_language_count() -> int
    func get_singleton(name: StringName) -> Object
    func get_singleton_list() -> PackedStringArray
    func get_version_info() -> Dictionary
    func get_write_movie_path() -> String
    func has_singleton(name: StringName) -> bool
    func is_editor_hint() -> bool
    func is_in_physics_frame() -> bool
    func register_script_language(language: ScriptLanguage) -> enum Error
    func register_singleton(name: StringName, instance: Object)
    func unregister_script_language(language: ScriptLanguage) -> enum Error
    func unregister_singleton(name: StringName)

# Object < EngineDebugger (singleton)

  class EngineDebugger extends Object:

    func has_capture(name: StringName) -> bool
    func has_profiler(name: StringName) -> bool
    func is_active() -> bool
    func is_profiling(name: StringName) -> bool
    func profiler_add_frame_data(name: StringName, data: Array)
    func profiler_enable(name: StringName, enable: bool, arguments: Array = [])
    func register_message_capture(name: StringName, callable: Callable)
    func register_profiler(name: StringName, profiler: EngineProfiler)
    func send_message(message: String, data: Array)
    func unregister_message_capture(name: StringName)
    func unregister_profiler(name: StringName)

# Object < GDExtensionManager (singleton)

  class GDExtensionManager extends Object:

    enum LoadStatus {
      LOAD_STATUS_OK = 0,
      LOAD_STATUS_FAILED = 1,
      LOAD_STATUS_ALREADY_LOADED = 2,
      LOAD_STATUS_NOT_LOADED = 3,
      LOAD_STATUS_NEEDS_RESTART = 4,
    }

    signal extensions_reloaded()

    func get_extension(path: String) -> GDExtension
    func get_loaded_extensions() -> PackedStringArray
    func is_extension_loaded(path: String) -> bool
    func load_extension(path: String) -> enum LoadStatus
    func reload_extension(path: String) -> enum LoadStatus
    func unload_extension(path: String) -> enum LoadStatus

# Object < Geometry2D (singleton)

  class Geometry2D extends Object:

    enum PolyBooleanOperation {
      OPERATION_UNION = 0,
      OPERATION_DIFFERENCE = 1,
      OPERATION_INTERSECTION = 2,
      OPERATION_XOR = 3,
    }

    enum PolyEndType {
      END_POLYGON = 0,
      END_JOINED = 1,
      END_BUTT = 2,
      END_SQUARE = 3,
      END_ROUND = 4,
    }

    enum PolyJoinType {
      JOIN_SQUARE = 0,
      JOIN_ROUND = 1,
      JOIN_MITER = 2,
    }

    func clip_polygons(polygon_a: PackedVector2Array, polygon_b: PackedVector2Array) -> Array[PackedVector2Array]
    func clip_polyline_with_polygon(polyline: PackedVector2Array, polygon: PackedVector2Array) -> Array[PackedVector2Array]
    func convex_hull(points: PackedVector2Array) -> PackedVector2Array
    func decompose_polygon_in_convex(polygon: PackedVector2Array) -> Array[PackedVector2Array]
    func exclude_polygons(polygon_a: PackedVector2Array, polygon_b: PackedVector2Array) -> Array[PackedVector2Array]
    func get_closest_point_to_segment(point: Vector2, s1: Vector2, s2: Vector2) -> Vector2
    func get_closest_point_to_segment_uncapped(point: Vector2, s1: Vector2, s2: Vector2) -> Vector2
    func get_closest_points_between_segments(p1: Vector2, q1: Vector2, p2: Vector2, q2: Vector2) -> PackedVector2Array
    func intersect_polygons(polygon_a: PackedVector2Array, polygon_b: PackedVector2Array) -> Array[PackedVector2Array]
    func intersect_polyline_with_polygon(polyline: PackedVector2Array, polygon: PackedVector2Array) -> Array[PackedVector2Array]
    func is_point_in_circle(point: Vector2, circle_position: Vector2, circle_radius: float) -> bool
    func is_point_in_polygon(point: Vector2, polygon: PackedVector2Array) -> bool
    func is_polygon_clockwise(polygon: PackedVector2Array) -> bool
    func line_intersects_line(from_a: Vector2, dir_a: Vector2, from_b: Vector2, dir_b: Vector2) -> Variant
    func make_atlas(sizes: PackedVector2Array) -> Dictionary
    func merge_polygons(polygon_a: PackedVector2Array, polygon_b: PackedVector2Array) -> Array[PackedVector2Array]
    func offset_polygon(polygon: PackedVector2Array, delta: float, join_type: enum PolyJoinType = JOIN_SQUARE) -> Array[PackedVector2Array]
    func offset_polyline(polyline: PackedVector2Array, delta: float, join_type: enum PolyJoinType = JOIN_SQUARE, end_type: enum PolyEndType = END_SQUARE) -> Array[PackedVector2Array]
    func point_is_inside_triangle(point: Vector2, a: Vector2, b: Vector2, c: Vector2) -> bool
    func segment_intersects_circle(segment_from: Vector2, segment_to: Vector2, circle_position: Vector2, circle_radius: float) -> float
    func segment_intersects_segment(from_a: Vector2, to_a: Vector2, from_b: Vector2, to_b: Vector2) -> Variant
    func triangulate_delaunay(points: PackedVector2Array) -> PackedInt32Array
    func triangulate_polygon(polygon: PackedVector2Array) -> PackedInt32Array

# Object < Geometry3D (singleton)

  class Geometry3D extends Object:

    func build_box_planes(extents: Vector3) -> Array[Plane]
    func build_capsule_planes(radius: float, height: float, sides: int, lats: int, axis: enum Vector3.Axis = Vector3.) -> Array[Plane]
    func build_cylinder_planes(radius: float, height: float, sides: int, axis: enum Vector3.Axis = Vector3.) -> Array[Plane]
    func clip_polygon(points: PackedVector3Array, plane: Plane) -> PackedVector3Array
    func compute_convex_mesh_points(planes: Array[Plane]) -> PackedVector3Array
    func get_closest_point_to_segment(point: Vector3, s1: Vector3, s2: Vector3) -> Vector3
    func get_closest_point_to_segment_uncapped(point: Vector3, s1: Vector3, s2: Vector3) -> Vector3
    func get_closest_points_between_segments(p1: Vector3, p2: Vector3, q1: Vector3, q2: Vector3) -> PackedVector3Array
    func get_triangle_barycentric_coords(point: Vector3, a: Vector3, b: Vector3, c: Vector3) -> Vector3
    func ray_intersects_triangle(from: Vector3, dir: Vector3, a: Vector3, b: Vector3, c: Vector3) -> Variant
    func segment_intersects_convex(from: Vector3, to: Vector3, planes: Array[Plane]) -> PackedVector3Array
    func segment_intersects_cylinder(from: Vector3, to: Vector3, height: float, radius: float) -> PackedVector3Array
    func segment_intersects_sphere(from: Vector3, to: Vector3, sphere_position: Vector3, sphere_radius: float) -> PackedVector3Array
    func segment_intersects_triangle(from: Vector3, to: Vector3, a: Vector3, b: Vector3, c: Vector3) -> Variant

# Object < Input (singleton)

  class Input extends Object:

    enum CursorShape {
      CURSOR_ARROW = 0,
      CURSOR_IBEAM = 1,
      CURSOR_POINTING_HAND = 2,
      CURSOR_CROSS = 3,
      CURSOR_WAIT = 4,
      CURSOR_BUSY = 5,
      CURSOR_DRAG = 6,
      CURSOR_CAN_DROP = 7,
      CURSOR_FORBIDDEN = 8,
      CURSOR_VSIZE = 9,
      CURSOR_HSIZE = 10,
      CURSOR_BDIAGSIZE = 11,
      CURSOR_FDIAGSIZE = 12,
      CURSOR_MOVE = 13,
      CURSOR_VSPLIT = 14,
      CURSOR_HSPLIT = 15,
      CURSOR_HELP = 16,
    }

    enum MouseMode {
      MOUSE_MODE_VISIBLE = 0,
      MOUSE_MODE_HIDDEN = 1,
      MOUSE_MODE_CAPTURED = 2,
      MOUSE_MODE_CONFINED = 3,
      MOUSE_MODE_CONFINED_HIDDEN = 4,
    }

    var mouse_mode: enum MouseMode
    var use_accumulated_input: bool

    signal joy_connection_changed(device: int, connected: bool)

    func action_press(action: StringName, strength: float = 1.0)
    func action_release(action: StringName)
    func add_joy_mapping(mapping: String, update_existing: bool = false)
    func flush_buffered_events()
    func get_accelerometer() -> Vector3
    func get_action_raw_strength(action: StringName, exact_match: bool = false) -> float
    func get_action_strength(action: StringName, exact_match: bool = false) -> float
    func get_axis(negative_action: StringName, positive_action: StringName) -> float
    func get_connected_joypads() -> Array[int]
    func get_current_cursor_shape() -> enum CursorShape
    func get_gravity() -> Vector3
    func get_gyroscope() -> Vector3
    func get_joy_axis(device: int, axis: enum JoyAxis) -> float
    func get_joy_guid(device: int) -> String
    func get_joy_info(device: int) -> Dictionary
    func get_joy_name(device: int) -> String
    func get_joy_vibration_duration(device: int) -> float
    func get_joy_vibration_strength(device: int) -> Vector2
    func get_last_mouse_velocity() -> Vector2
    func get_magnetometer() -> Vector3
    func get_mouse_button_mask() -> enum MouseButtonMask
    func get_vector(negative_x: StringName, positive_x: StringName, negative_y: StringName, positive_y: StringName, deadzone: float = -1.0) -> Vector2
    func is_action_just_pressed(action: StringName, exact_match: bool = false) -> bool
    func is_action_just_released(action: StringName, exact_match: bool = false) -> bool
    func is_action_pressed(action: StringName, exact_match: bool = false) -> bool
    func is_anything_pressed() -> bool
    func is_joy_button_pressed(device: int, button: enum JoyButton) -> bool
    func is_joy_known(device: int) -> bool
    func is_key_label_pressed(keycode: enum Key) -> bool
    func is_key_pressed(keycode: enum Key) -> bool
    func is_mouse_button_pressed(button: enum MouseButton) -> bool
    func is_physical_key_pressed(keycode: enum Key) -> bool
    func parse_input_event(event: InputEvent)
    func remove_joy_mapping(guid: String)
    func set_accelerometer(value: Vector3)
    func set_custom_mouse_cursor(image: Resource, shape: enum CursorShape = CURSOR_ARROW, hotspot: Vector2 = Vector2(0, 0))
    func set_default_cursor_shape(shape: enum CursorShape = CURSOR_ARROW)
    func set_gravity(value: Vector3)
    func set_gyroscope(value: Vector3)
    func set_magnetometer(value: Vector3)
    func should_ignore_device(vendor_id: int, product_id: int) -> bool
    func start_joy_vibration(device: int, weak_magnitude: float, strong_magnitude: float, duration: float = 0)
    func stop_joy_vibration(device: int)
    func vibrate_handheld(duration_ms: int = 500)
    func warp_mouse(position: Vector2)

# Object < InputMap (singleton)

  class InputMap extends Object:

    func action_add_event(action: StringName, event: InputEvent)
    func action_erase_event(action: StringName, event: InputEvent)
    func action_erase_events(action: StringName)
    func action_get_deadzone(action: StringName) -> float
    func action_get_events(action: StringName) -> Array[InputEvent]
    func action_has_event(action: StringName, event: InputEvent) -> bool
    func action_set_deadzone(action: StringName, deadzone: float)
    func add_action(action: StringName, deadzone: float = 0.5)
    func erase_action(action: StringName)
    func event_is_action(event: InputEvent, action: StringName, exact_match: bool = false) -> bool
    func get_actions() -> Array[StringName]
    func has_action(action: StringName) -> bool
    func load_from_project_settings()

# Object < IP (singleton)

  class IP extends Object:

    const RESOLVER_INVALID_ID = -1
    const RESOLVER_MAX_QUERIES = 256

    enum ResolverStatus {
      RESOLVER_STATUS_NONE = 0,
      RESOLVER_STATUS_WAITING = 1,
      RESOLVER_STATUS_DONE = 2,
      RESOLVER_STATUS_ERROR = 3,
    }

    enum Type {
      TYPE_NONE = 0,
      TYPE_IPV4 = 1,
      TYPE_IPV6 = 2,
      TYPE_ANY = 3,
    }

    func clear_cache(hostname: String = "")
    func erase_resolve_item(id: int)
    func get_local_addresses() -> PackedStringArray
    func get_local_interfaces() -> Array[Dictionary]
    func get_resolve_item_address(id: int) -> String
    func get_resolve_item_addresses(id: int) -> Array
    func get_resolve_item_status(id: int) -> enum ResolverStatus
    func resolve_hostname(host: String, ip_type: enum Type = TYPE_ANY) -> String
    func resolve_hostname_addresses(host: String, ip_type: enum Type = TYPE_ANY) -> PackedStringArray
    func resolve_hostname_queue_item(host: String, ip_type: enum Type = TYPE_ANY) -> int

# Object < JSONRPC

  class JSONRPC extends Object:

    enum ErrorCode {
      PARSE_ERROR = -32700,
      INTERNAL_ERROR = -32603,
      INVALID_PARAMS = -32602,
      METHOD_NOT_FOUND = -32601,
      INVALID_REQUEST = -32600,
    }

    func make_notification(method: String, params: Variant) -> Dictionary
    func make_request(method: String, params: Variant, id: Variant) -> Dictionary
    func make_response(result: Variant, id: Variant) -> Dictionary
    func make_response_error(code: int, message: String, id: Variant = null) -> Dictionary
    func process_action(action: Variant, recurse: bool = false) -> Variant
    func process_string(action: String) -> String
    func set_scope(scope: String, target: Object)

# Object < MainLoop

  class MainLoop extends Object:

    enum Notification {
      NOTIFICATION_OS_MEMORY_WARNING = 2009,
      NOTIFICATION_TRANSLATION_CHANGED = 2010,
      NOTIFICATION_WM_ABOUT = 2011,
      NOTIFICATION_CRASH = 2012,
      NOTIFICATION_OS_IME_UPDATE = 2013,
      NOTIFICATION_APPLICATION_RESUMED = 2014,
      NOTIFICATION_APPLICATION_PAUSED = 2015,
      NOTIFICATION_APPLICATION_FOCUS_IN = 2016,
      NOTIFICATION_APPLICATION_FOCUS_OUT = 2017,
      NOTIFICATION_TEXT_SERVER_CHANGED = 2018,
    }

    signal on_request_permissions_result(permission: String, granted: bool)

    func _finalize()
    func _initialize()
    func _physics_process(delta: float) -> bool
    func _process(delta: float) -> bool

# Object < MainLoop < SceneTree

  class SceneTree extends MainLoop:

    enum GroupCallFlags {
      GROUP_CALL_DEFAULT = 0,
      GROUP_CALL_REVERSE = 1,
      GROUP_CALL_DEFERRED = 2,
      GROUP_CALL_UNIQUE = 4,
    }

    var auto_accept_quit: bool = true
    var current_scene: Node
    var debug_collisions_hint: bool = false
    var debug_navigation_hint: bool = false
    var debug_paths_hint: bool = false
    var edited_scene_root: Node
    var multiplayer_poll: bool = true
    var paused: bool = false
    var quit_on_go_back: bool = true
    var root: Window

    signal node_added(node: Node)
    signal node_configuration_warning_changed(node: Node)
    signal node_removed(node: Node)
    signal node_renamed(node: Node)
    signal physics_frame()
    signal process_frame()
    signal tree_changed()
    signal tree_process_mode_changed()

    func call_group(group: StringName, method: StringName, ...)
    func call_group_flags(flags: int, group: StringName, method: StringName, ...)
    func change_scene_to_file(path: String) -> enum Error
    func change_scene_to_packed(packed_scene: PackedScene) -> enum Error
    func create_timer(time_sec: float, process_always: bool = true, process_in_physics: bool = false, ignore_time_scale: bool = false) -> SceneTreeTimer
    func create_tween() -> Tween
    func get_first_node_in_group(group: StringName) -> Node
    func get_frame() -> int
    func get_multiplayer(for_path: NodePath = NodePath("")) -> MultiplayerAPI
    func get_node_count() -> int
    func get_nodes_in_group(group: StringName) -> Array[Node]
    func get_processed_tweens() -> Array[Tween]
    func has_group(name: StringName) -> bool
    func notify_group(group: StringName, notification: int)
    func notify_group_flags(call_flags: int, group: StringName, notification: int)
    func queue_delete(obj: Object)
    func quit(exit_code: int = 0)
    func reload_current_scene() -> enum Error
    func set_group(group: StringName, property: String, value: Variant)
    func set_group_flags(call_flags: int, group: StringName, property: String, value: Variant)
    func set_multiplayer(multiplayer: MultiplayerAPI, root_path: NodePath = NodePath(""))
    func unload_current_scene()

# Object < Marshalls (singleton)

  class Marshalls extends Object:

    func base64_to_raw(base64_str: String) -> PackedByteArray
    func base64_to_utf8(base64_str: String) -> String
    func base64_to_variant(base64_str: String, allow_objects: bool = false) -> Variant
    func raw_to_base64(array: PackedByteArray) -> String
    func utf8_to_base64(utf8_str: String) -> String
    func variant_to_base64(variant: Variant, full_objects: bool = false) -> String

# Object < MovieWriter

  class MovieWriter extends Object:

    static func add_writer(writer: MovieWriter)

    func _get_audio_mix_rate() -> int
    func _get_audio_speaker_mode() -> enum AudioServer.SpeakerMode
    func _handles_file(path: String) -> bool
    func _write_begin(movie_size: Vector2i, fps: int, base_path: String) -> enum Error
    func _write_end()

# Object < NavigationMeshGenerator (singleton)

  class NavigationMeshGenerator extends Object:

    func bake(navigation_mesh: NavigationMesh, root_node: Node)
    func bake_from_source_geometry_data(navigation_mesh: NavigationMesh, source_geometry_data: NavigationMeshSourceGeometryData3D, callback: Callable = Callable())
    func clear(navigation_mesh: NavigationMesh)
    func parse_source_geometry_data(navigation_mesh: NavigationMesh, source_geometry_data: NavigationMeshSourceGeometryData3D, root_node: Node, callback: Callable = Callable())

# Object < NavigationServer2D (singleton)

  class NavigationServer2D extends Object:

    signal map_changed(map: RID)
    signal navigation_debug_changed()

    func agent_create() -> RID
    func agent_get_avoidance_enabled(agent: RID) -> bool
    func agent_get_map(agent: RID) -> RID
    func agent_get_paused(agent: RID) -> bool
    func agent_is_map_changed(agent: RID) -> bool
    func agent_set_avoidance_callback(agent: RID, callback: Callable)
    func agent_set_avoidance_enabled(agent: RID, enabled: bool)
    func agent_set_avoidance_layers(agent: RID, layers: int)
    func agent_set_avoidance_mask(agent: RID, mask: int)
    func agent_set_avoidance_priority(agent: RID, priority: float)
    func agent_set_map(agent: RID, map: RID)
    func agent_set_max_neighbors(agent: RID, count: int)
    func agent_set_max_speed(agent: RID, max_speed: float)
    func agent_set_neighbor_distance(agent: RID, distance: float)
    func agent_set_paused(agent: RID, paused: bool)
    func agent_set_position(agent: RID, position: Vector2)
    func agent_set_radius(agent: RID, radius: float)
    func agent_set_time_horizon_agents(agent: RID, time_horizon: float)
    func agent_set_time_horizon_obstacles(agent: RID, time_horizon: float)
    func agent_set_velocity(agent: RID, velocity: Vector2)
    func agent_set_velocity_forced(agent: RID, velocity: Vector2)
    func bake_from_source_geometry_data(navigation_polygon: NavigationPolygon, source_geometry_data: NavigationMeshSourceGeometryData2D, callback: Callable = Callable())
    func bake_from_source_geometry_data_async(navigation_polygon: NavigationPolygon, source_geometry_data: NavigationMeshSourceGeometryData2D, callback: Callable = Callable())
    func free_rid(rid: RID)
    func get_debug_enabled() -> bool
    func get_maps() -> Array[RID]
    func link_create() -> RID
    func link_get_enabled(link: RID) -> bool
    func link_get_end_position(link: RID) -> Vector2
    func link_get_enter_cost(link: RID) -> float
    func link_get_map(link: RID) -> RID
    func link_get_navigation_layers(link: RID) -> int
    func link_get_owner_id(link: RID) -> int
    func link_get_start_position(link: RID) -> Vector2
    func link_get_travel_cost(link: RID) -> float
    func link_is_bidirectional(link: RID) -> bool
    func link_set_bidirectional(link: RID, bidirectional: bool)
    func link_set_enabled(link: RID, enabled: bool)
    func link_set_end_position(link: RID, position: Vector2)
    func link_set_enter_cost(link: RID, enter_cost: float)
    func link_set_map(link: RID, map: RID)
    func link_set_navigation_layers(link: RID, navigation_layers: int)
    func link_set_owner_id(link: RID, owner_id: int)
    func link_set_start_position(link: RID, position: Vector2)
    func link_set_travel_cost(link: RID, travel_cost: float)
    func map_create() -> RID
    func map_force_update(map: RID)
    func map_get_agents(map: RID) -> Array[RID]
    func map_get_cell_size(map: RID) -> float
    func map_get_closest_point(map: RID, to_point: Vector2) -> Vector2
    func map_get_closest_point_owner(map: RID, to_point: Vector2) -> RID
    func map_get_edge_connection_margin(map: RID) -> float
    func map_get_link_connection_radius(map: RID) -> float
    func map_get_links(map: RID) -> Array[RID]
    func map_get_obstacles(map: RID) -> Array[RID]
    func map_get_path(map: RID, origin: Vector2, destination: Vector2, optimize: bool, navigation_layers: int = 1) -> PackedVector2Array
    func map_get_regions(map: RID) -> Array[RID]
    func map_get_use_edge_connections(map: RID) -> bool
    func map_is_active(map: RID) -> bool
    func map_set_active(map: RID, active: bool)
    func map_set_cell_size(map: RID, cell_size: float)
    func map_set_edge_connection_margin(map: RID, margin: float)
    func map_set_link_connection_radius(map: RID, radius: float)
    func map_set_use_edge_connections(map: RID, enabled: bool)
    func obstacle_create() -> RID
    func obstacle_get_avoidance_enabled(obstacle: RID) -> bool
    func obstacle_get_map(obstacle: RID) -> RID
    func obstacle_get_paused(obstacle: RID) -> bool
    func obstacle_set_avoidance_enabled(obstacle: RID, enabled: bool)
    func obstacle_set_avoidance_layers(obstacle: RID, layers: int)
    func obstacle_set_map(obstacle: RID, map: RID)
    func obstacle_set_paused(obstacle: RID, paused: bool)
    func obstacle_set_position(obstacle: RID, position: Vector2)
    func obstacle_set_radius(obstacle: RID, radius: float)
    func obstacle_set_velocity(obstacle: RID, velocity: Vector2)
    func obstacle_set_vertices(obstacle: RID, vertices: PackedVector2Array)
    func parse_source_geometry_data(navigation_polygon: NavigationPolygon, source_geometry_data: NavigationMeshSourceGeometryData2D, root_node: Node, callback: Callable = Callable())
    func query_path(parameters: NavigationPathQueryParameters2D, result: NavigationPathQueryResult2D)
    func region_create() -> RID
    func region_get_connection_pathway_end(region: RID, connection: int) -> Vector2
    func region_get_connection_pathway_start(region: RID, connection: int) -> Vector2
    func region_get_connections_count(region: RID) -> int
    func region_get_enabled(region: RID) -> bool
    func region_get_enter_cost(region: RID) -> float
    func region_get_map(region: RID) -> RID
    func region_get_navigation_layers(region: RID) -> int
    func region_get_owner_id(region: RID) -> int
    func region_get_travel_cost(region: RID) -> float
    func region_get_use_edge_connections(region: RID) -> bool
    func region_owns_point(region: RID, point: Vector2) -> bool
    func region_set_enabled(region: RID, enabled: bool)
    func region_set_enter_cost(region: RID, enter_cost: float)
    func region_set_map(region: RID, map: RID)
    func region_set_navigation_layers(region: RID, navigation_layers: int)
    func region_set_navigation_polygon(region: RID, navigation_polygon: NavigationPolygon)
    func region_set_owner_id(region: RID, owner_id: int)
    func region_set_transform(region: RID, transform: Transform2D)
    func region_set_travel_cost(region: RID, travel_cost: float)
    func region_set_use_edge_connections(region: RID, enabled: bool)
    func set_debug_enabled(enabled: bool)

# Object < NavigationServer3D (singleton)

  class NavigationServer3D extends Object:

    enum ProcessInfo {
      INFO_ACTIVE_MAPS = 0,
      INFO_REGION_COUNT = 1,
      INFO_AGENT_COUNT = 2,
      INFO_LINK_COUNT = 3,
      INFO_POLYGON_COUNT = 4,
      INFO_EDGE_COUNT = 5,
      INFO_EDGE_MERGE_COUNT = 6,
      INFO_EDGE_CONNECTION_COUNT = 7,
      INFO_EDGE_FREE_COUNT = 8,
    }

    signal avoidance_debug_changed()
    signal map_changed(map: RID)
    signal navigation_debug_changed()

    func agent_create() -> RID
    func agent_get_avoidance_enabled(agent: RID) -> bool
    func agent_get_map(agent: RID) -> RID
    func agent_get_paused(agent: RID) -> bool
    func agent_get_use_3d_avoidance(agent: RID) -> bool
    func agent_is_map_changed(agent: RID) -> bool
    func agent_set_avoidance_callback(agent: RID, callback: Callable)
    func agent_set_avoidance_enabled(agent: RID, enabled: bool)
    func agent_set_avoidance_layers(agent: RID, layers: int)
    func agent_set_avoidance_mask(agent: RID, mask: int)
    func agent_set_avoidance_priority(agent: RID, priority: float)
    func agent_set_height(agent: RID, height: float)
    func agent_set_map(agent: RID, map: RID)
    func agent_set_max_neighbors(agent: RID, count: int)
    func agent_set_max_speed(agent: RID, max_speed: float)
    func agent_set_neighbor_distance(agent: RID, distance: float)
    func agent_set_paused(agent: RID, paused: bool)
    func agent_set_position(agent: RID, position: Vector3)
    func agent_set_radius(agent: RID, radius: float)
    func agent_set_time_horizon_agents(agent: RID, time_horizon: float)
    func agent_set_time_horizon_obstacles(agent: RID, time_horizon: float)
    func agent_set_use_3d_avoidance(agent: RID, enabled: bool)
    func agent_set_velocity(agent: RID, velocity: Vector3)
    func agent_set_velocity_forced(agent: RID, velocity: Vector3)
    func bake_from_source_geometry_data(navigation_mesh: NavigationMesh, source_geometry_data: NavigationMeshSourceGeometryData3D, callback: Callable = Callable())
    func bake_from_source_geometry_data_async(navigation_mesh: NavigationMesh, source_geometry_data: NavigationMeshSourceGeometryData3D, callback: Callable = Callable())
    func free_rid(rid: RID)
    func get_debug_enabled() -> bool
    func get_maps() -> Array[RID]
    func get_process_info(process_info: enum ProcessInfo) -> int
    func link_create() -> RID
    func link_get_enabled(link: RID) -> bool
    func link_get_end_position(link: RID) -> Vector3
    func link_get_enter_cost(link: RID) -> float
    func link_get_map(link: RID) -> RID
    func link_get_navigation_layers(link: RID) -> int
    func link_get_owner_id(link: RID) -> int
    func link_get_start_position(link: RID) -> Vector3
    func link_get_travel_cost(link: RID) -> float
    func link_is_bidirectional(link: RID) -> bool
    func link_set_bidirectional(link: RID, bidirectional: bool)
    func link_set_enabled(link: RID, enabled: bool)
    func link_set_end_position(link: RID, position: Vector3)
    func link_set_enter_cost(link: RID, enter_cost: float)
    func link_set_map(link: RID, map: RID)
    func link_set_navigation_layers(link: RID, navigation_layers: int)
    func link_set_owner_id(link: RID, owner_id: int)
    func link_set_start_position(link: RID, position: Vector3)
    func link_set_travel_cost(link: RID, travel_cost: float)
    func map_create() -> RID
    func map_force_update(map: RID)
    func map_get_agents(map: RID) -> Array[RID]
    func map_get_cell_height(map: RID) -> float
    func map_get_cell_size(map: RID) -> float
    func map_get_closest_point(map: RID, to_point: Vector3) -> Vector3
    func map_get_closest_point_normal(map: RID, to_point: Vector3) -> Vector3
    func map_get_closest_point_owner(map: RID, to_point: Vector3) -> RID
    func map_get_closest_point_to_segment(map: RID, start: Vector3, end: Vector3, use_collision: bool = false) -> Vector3
    func map_get_edge_connection_margin(map: RID) -> float
    func map_get_link_connection_radius(map: RID) -> float
    func map_get_links(map: RID) -> Array[RID]
    func map_get_obstacles(map: RID) -> Array[RID]
    func map_get_path(map: RID, origin: Vector3, destination: Vector3, optimize: bool, navigation_layers: int = 1) -> PackedVector3Array
    func map_get_regions(map: RID) -> Array[RID]
    func map_get_up(map: RID) -> Vector3
    func map_get_use_edge_connections(map: RID) -> bool
    func map_is_active(map: RID) -> bool
    func map_set_active(map: RID, active: bool)
    func map_set_cell_height(map: RID, cell_height: float)
    func map_set_cell_size(map: RID, cell_size: float)
    func map_set_edge_connection_margin(map: RID, margin: float)
    func map_set_link_connection_radius(map: RID, radius: float)
    func map_set_up(map: RID, up: Vector3)
    func map_set_use_edge_connections(map: RID, enabled: bool)
    func obstacle_create() -> RID
    func obstacle_get_avoidance_enabled(obstacle: RID) -> bool
    func obstacle_get_map(obstacle: RID) -> RID
    func obstacle_get_paused(obstacle: RID) -> bool
    func obstacle_get_use_3d_avoidance(obstacle: RID) -> bool
    func obstacle_set_avoidance_enabled(obstacle: RID, enabled: bool)
    func obstacle_set_avoidance_layers(obstacle: RID, layers: int)
    func obstacle_set_height(obstacle: RID, height: float)
    func obstacle_set_map(obstacle: RID, map: RID)
    func obstacle_set_paused(obstacle: RID, paused: bool)
    func obstacle_set_position(obstacle: RID, position: Vector3)
    func obstacle_set_radius(obstacle: RID, radius: float)
    func obstacle_set_use_3d_avoidance(obstacle: RID, enabled: bool)
    func obstacle_set_velocity(obstacle: RID, velocity: Vector3)
    func obstacle_set_vertices(obstacle: RID, vertices: PackedVector3Array)
    func parse_source_geometry_data(navigation_mesh: NavigationMesh, source_geometry_data: NavigationMeshSourceGeometryData3D, root_node: Node, callback: Callable = Callable())
    func query_path(parameters: NavigationPathQueryParameters3D, result: NavigationPathQueryResult3D)
    func region_bake_navigation_mesh(navigation_mesh: NavigationMesh, root_node: Node)
    func region_create() -> RID
    func region_get_connection_pathway_end(region: RID, connection: int) -> Vector3
    func region_get_connection_pathway_start(region: RID, connection: int) -> Vector3
    func region_get_connections_count(region: RID) -> int
    func region_get_enabled(region: RID) -> bool
    func region_get_enter_cost(region: RID) -> float
    func region_get_map(region: RID) -> RID
    func region_get_navigation_layers(region: RID) -> int
    func region_get_owner_id(region: RID) -> int
    func region_get_travel_cost(region: RID) -> float
    func region_get_use_edge_connections(region: RID) -> bool
    func region_owns_point(region: RID, point: Vector3) -> bool
    func region_set_enabled(region: RID, enabled: bool)
    func region_set_enter_cost(region: RID, enter_cost: float)
    func region_set_map(region: RID, map: RID)
    func region_set_navigation_layers(region: RID, navigation_layers: int)
    func region_set_navigation_mesh(region: RID, navigation_mesh: NavigationMesh)
    func region_set_owner_id(region: RID, owner_id: int)
    func region_set_transform(region: RID, transform: Transform3D)
    func region_set_travel_cost(region: RID, travel_cost: float)
    func region_set_use_edge_connections(region: RID, enabled: bool)
    func set_active(active: bool)
    func set_debug_enabled(enabled: bool)

# Object < OS (singleton)

  class OS extends Object:

    enum RenderingDriver {
      RENDERING_DRIVER_VULKAN = 0,
      RENDERING_DRIVER_OPENGL3 = 1,
    }

    enum SystemDir {
      SYSTEM_DIR_DESKTOP = 0,
      SYSTEM_DIR_DCIM = 1,
      SYSTEM_DIR_DOCUMENTS = 2,
      SYSTEM_DIR_DOWNLOADS = 3,
      SYSTEM_DIR_MOVIES = 4,
      SYSTEM_DIR_MUSIC = 5,
      SYSTEM_DIR_PICTURES = 6,
      SYSTEM_DIR_RINGTONES = 7,
    }

    var delta_smoothing: bool = true
    var low_processor_usage_mode: bool = false
    var low_processor_usage_mode_sleep_usec: int = 6900

    func alert(text: String, title: String = "Alert!")
    func close_midi_inputs()
    func crash(message: String)
    func create_instance(arguments: PackedStringArray) -> int
    func create_process(path: String, arguments: PackedStringArray, open_console: bool = false) -> int
    func delay_msec(msec: int)
    func delay_usec(usec: int)
    func execute(path: String, arguments: PackedStringArray, output: Array = [], read_stderr: bool = false, open_console: bool = false) -> int
    func find_keycode_from_string(string: String) -> enum Key
    func get_cache_dir() -> String
    func get_cmdline_args() -> PackedStringArray
    func get_cmdline_user_args() -> PackedStringArray
    func get_config_dir() -> String
    func get_connected_midi_inputs() -> PackedStringArray
    func get_data_dir() -> String
    func get_distribution_name() -> String
    func get_environment(variable: String) -> String
    func get_executable_path() -> String
    func get_granted_permissions() -> PackedStringArray
    func get_keycode_string(code: enum Key) -> String
    func get_locale() -> String
    func get_locale_language() -> String
    func get_main_thread_id() -> int
    func get_memory_info() -> Dictionary
    func get_model_name() -> String
    func get_name() -> String
    func get_process_id() -> int
    func get_processor_count() -> int
    func get_processor_name() -> String
    func get_restart_on_exit_arguments() -> PackedStringArray
    func get_static_memory_peak_usage() -> int
    func get_static_memory_usage() -> int
    func get_system_dir(dir: enum SystemDir, shared_storage: bool = true) -> String
    func get_system_font_path(font_name: String, weight: int = 400, stretch: int = 100, italic: bool = false) -> String
    func get_system_font_path_for_text(font_name: String, text: String, locale: String = "", script: String = "", weight: int = 400, stretch: int = 100, italic: bool = false) -> PackedStringArray
    func get_system_fonts() -> PackedStringArray
    func get_thread_caller_id() -> int
    func get_unique_id() -> String
    func get_user_data_dir() -> String
    func get_version() -> String
    func get_video_adapter_driver_info() -> PackedStringArray
    func has_environment(variable: String) -> bool
    func has_feature(tag_name: String) -> bool
    func is_debug_build() -> bool
    func is_keycode_unicode(code: int) -> bool
    func is_process_running(pid: int) -> bool
    func is_restart_on_exit_set() -> bool
    func is_sandboxed() -> bool
    func is_stdout_verbose() -> bool
    func is_userfs_persistent() -> bool
    func kill(pid: int) -> enum Error
    func move_to_trash(path: String) -> enum Error
    func open_midi_inputs()
    func read_string_from_stdin() -> String
    func request_permission(name: String) -> bool
    func request_permissions() -> bool
    func revoke_granted_permissions()
    func set_environment(variable: String, value: String)
    func set_restart_on_exit(restart: bool, arguments: PackedStringArray = PackedStringArray())
    func set_thread_name(name: String) -> enum Error
    func set_use_file_access_save_and_swap(enabled: bool)
    func shell_open(uri: String) -> enum Error
    func shell_show_in_file_manager(file_or_dir_path: String, open_folder: bool = true) -> enum Error
    func unset_environment(variable: String)

# Object < Performance (singleton)

  class Performance extends Object:

    enum Monitor {
      TIME_FPS = 0,
      TIME_PROCESS = 1,
      TIME_PHYSICS_PROCESS = 2,
      TIME_NAVIGATION_PROCESS = 3,
      MEMORY_STATIC = 4,
      MEMORY_STATIC_MAX = 5,
      MEMORY_MESSAGE_BUFFER_MAX = 6,
      OBJECT_COUNT = 7,
      OBJECT_RESOURCE_COUNT = 8,
      OBJECT_NODE_COUNT = 9,
      OBJECT_ORPHAN_NODE_COUNT = 10,
      RENDER_TOTAL_OBJECTS_IN_FRAME = 11,
      RENDER_TOTAL_PRIMITIVES_IN_FRAME = 12,
      RENDER_TOTAL_DRAW_CALLS_IN_FRAME = 13,
      RENDER_VIDEO_MEM_USED = 14,
      RENDER_TEXTURE_MEM_USED = 15,
      RENDER_BUFFER_MEM_USED = 16,
      PHYSICS_2D_ACTIVE_OBJECTS = 17,
      PHYSICS_2D_COLLISION_PAIRS = 18,
      PHYSICS_2D_ISLAND_COUNT = 19,
      PHYSICS_3D_ACTIVE_OBJECTS = 20,
      PHYSICS_3D_COLLISION_PAIRS = 21,
      PHYSICS_3D_ISLAND_COUNT = 22,
      AUDIO_OUTPUT_LATENCY = 23,
      NAVIGATION_ACTIVE_MAPS = 24,
      NAVIGATION_REGION_COUNT = 25,
      NAVIGATION_AGENT_COUNT = 26,
      NAVIGATION_LINK_COUNT = 27,
      NAVIGATION_POLYGON_COUNT = 28,
      NAVIGATION_EDGE_COUNT = 29,
      NAVIGATION_EDGE_MERGE_COUNT = 30,
      NAVIGATION_EDGE_CONNECTION_COUNT = 31,
      NAVIGATION_EDGE_FREE_COUNT = 32,
      MONITOR_MAX = 33,
    }

    func add_custom_monitor(id: StringName, callable: Callable, arguments: Array = [])
    func get_custom_monitor(id: StringName) -> Variant
    func get_custom_monitor_names() -> Array[StringName]
    func get_monitor(monitor: enum Monitor) -> float
    func get_monitor_modification_time() -> int
    func has_custom_monitor(id: StringName) -> bool
    func remove_custom_monitor(id: StringName)

# Object < PhysicsDirectBodyState2D (abstract)

  class PhysicsDirectBodyState2D extends Object:

    var angular_velocity: float
    var center_of_mass: Vector2
    var center_of_mass_local: Vector2
    var inverse_inertia: float
    var inverse_mass: float
    var linear_velocity: Vector2
    var sleeping: bool
    var step: float
    var total_angular_damp: float
    var total_gravity: Vector2
    var total_linear_damp: float
    var transform: Transform2D

    func add_constant_central_force(force: Vector2 = Vector2(0, 0))
    func add_constant_force(force: Vector2, position: Vector2 = Vector2(0, 0))
    func add_constant_torque(torque: float)
    func apply_central_force(force: Vector2 = Vector2(0, 0))
    func apply_central_impulse(impulse: Vector2)
    func apply_force(force: Vector2, position: Vector2 = Vector2(0, 0))
    func apply_impulse(impulse: Vector2, position: Vector2 = Vector2(0, 0))
    func apply_torque(torque: float)
    func apply_torque_impulse(impulse: float)
    func get_constant_force() -> Vector2
    func get_constant_torque() -> float
    func get_contact_collider(contact_idx: int) -> RID
    func get_contact_collider_id(contact_idx: int) -> int
    func get_contact_collider_object(contact_idx: int) -> Object
    func get_contact_collider_position(contact_idx: int) -> Vector2
    func get_contact_collider_shape(contact_idx: int) -> int
    func get_contact_collider_velocity_at_position(contact_idx: int) -> Vector2
    func get_contact_count() -> int
    func get_contact_impulse(contact_idx: int) -> Vector2
    func get_contact_local_normal(contact_idx: int) -> Vector2
    func get_contact_local_position(contact_idx: int) -> Vector2
    func get_contact_local_shape(contact_idx: int) -> int
    func get_contact_local_velocity_at_position(contact_idx: int) -> Vector2
    func get_space_state() -> PhysicsDirectSpaceState2D
    func get_velocity_at_local_position(local_position: Vector2) -> Vector2
    func integrate_forces()
    func set_constant_force(force: Vector2)
    func set_constant_torque(torque: float)

# Object < PhysicsDirectBodyState3D (abstract)

  class PhysicsDirectBodyState3D extends Object:

    var angular_velocity: Vector3
    var center_of_mass: Vector3
    var center_of_mass_local: Vector3
    var inverse_inertia: Vector3
    var inverse_inertia_tensor: Basis
    var inverse_mass: float
    var linear_velocity: Vector3
    var principal_inertia_axes: Basis
    var sleeping: bool
    var step: float
    var total_angular_damp: float
    var total_gravity: Vector3
    var total_linear_damp: float
    var transform: Transform3D

    func add_constant_central_force(force: Vector3 = Vector3(0, 0, 0))
    func add_constant_force(force: Vector3, position: Vector3 = Vector3(0, 0, 0))
    func add_constant_torque(torque: Vector3)
    func apply_central_force(force: Vector3 = Vector3(0, 0, 0))
    func apply_central_impulse(impulse: Vector3 = Vector3(0, 0, 0))
    func apply_force(force: Vector3, position: Vector3 = Vector3(0, 0, 0))
    func apply_impulse(impulse: Vector3, position: Vector3 = Vector3(0, 0, 0))
    func apply_torque(torque: Vector3)
    func apply_torque_impulse(impulse: Vector3)
    func get_constant_force() -> Vector3
    func get_constant_torque() -> Vector3
    func get_contact_collider(contact_idx: int) -> RID
    func get_contact_collider_id(contact_idx: int) -> int
    func get_contact_collider_object(contact_idx: int) -> Object
    func get_contact_collider_position(contact_idx: int) -> Vector3
    func get_contact_collider_shape(contact_idx: int) -> int
    func get_contact_collider_velocity_at_position(contact_idx: int) -> Vector3
    func get_contact_count() -> int
    func get_contact_impulse(contact_idx: int) -> Vector3
    func get_contact_local_normal(contact_idx: int) -> Vector3
    func get_contact_local_position(contact_idx: int) -> Vector3
    func get_contact_local_shape(contact_idx: int) -> int
    func get_contact_local_velocity_at_position(contact_idx: int) -> Vector3
    func get_space_state() -> PhysicsDirectSpaceState3D
    func get_velocity_at_local_position(local_position: Vector3) -> Vector3
    func integrate_forces()
    func set_constant_force(force: Vector3)
    func set_constant_torque(torque: Vector3)

# Object < PhysicsDirectSpaceState2D (abstract)

  class PhysicsDirectSpaceState2D extends Object:

    func cast_motion(parameters: PhysicsShapeQueryParameters2D) -> PackedFloat32Array
    func collide_shape(parameters: PhysicsShapeQueryParameters2D, max_results: int = 32) -> Array[Vector2]
    func get_rest_info(parameters: PhysicsShapeQueryParameters2D) -> Dictionary
    func intersect_point(parameters: PhysicsPointQueryParameters2D, max_results: int = 32) -> Array[Dictionary]
    func intersect_ray(parameters: PhysicsRayQueryParameters2D) -> Dictionary
    func intersect_shape(parameters: PhysicsShapeQueryParameters2D, max_results: int = 32) -> Array[Dictionary]

# Object < PhysicsDirectSpaceState3D (abstract)

  class PhysicsDirectSpaceState3D extends Object:

    func cast_motion(parameters: PhysicsShapeQueryParameters3D) -> PackedFloat32Array
    func collide_shape(parameters: PhysicsShapeQueryParameters3D, max_results: int = 32) -> Array[Vector3]
    func get_rest_info(parameters: PhysicsShapeQueryParameters3D) -> Dictionary
    func intersect_point(parameters: PhysicsPointQueryParameters3D, max_results: int = 32) -> Array[Dictionary]
    func intersect_ray(parameters: PhysicsRayQueryParameters3D) -> Dictionary
    func intersect_shape(parameters: PhysicsShapeQueryParameters3D, max_results: int = 32) -> Array[Dictionary]

# Object < PhysicsServer2D (singleton)

  class PhysicsServer2D extends Object:

    enum AreaBodyStatus {
      AREA_BODY_ADDED = 0,
      AREA_BODY_REMOVED = 1,
    }

    enum AreaParameter {
      AREA_PARAM_GRAVITY_OVERRIDE_MODE = 0,
      AREA_PARAM_GRAVITY = 1,
      AREA_PARAM_GRAVITY_VECTOR = 2,
      AREA_PARAM_GRAVITY_IS_POINT = 3,
      AREA_PARAM_GRAVITY_POINT_UNIT_DISTANCE = 4,
      AREA_PARAM_LINEAR_DAMP_OVERRIDE_MODE = 5,
      AREA_PARAM_LINEAR_DAMP = 6,
      AREA_PARAM_ANGULAR_DAMP_OVERRIDE_MODE = 7,
      AREA_PARAM_ANGULAR_DAMP = 8,
      AREA_PARAM_PRIORITY = 9,
    }

    enum AreaSpaceOverrideMode {
      AREA_SPACE_OVERRIDE_DISABLED = 0,
      AREA_SPACE_OVERRIDE_COMBINE = 1,
      AREA_SPACE_OVERRIDE_COMBINE_REPLACE = 2,
      AREA_SPACE_OVERRIDE_REPLACE = 3,
      AREA_SPACE_OVERRIDE_REPLACE_COMBINE = 4,
    }

    enum BodyDampMode {
      BODY_DAMP_MODE_COMBINE = 0,
      BODY_DAMP_MODE_REPLACE = 1,
    }

    enum BodyMode {
      BODY_MODE_STATIC = 0,
      BODY_MODE_KINEMATIC = 1,
      BODY_MODE_RIGID = 2,
      BODY_MODE_RIGID_LINEAR = 3,
    }

    enum BodyParameter {
      BODY_PARAM_BOUNCE = 0,
      BODY_PARAM_FRICTION = 1,
      BODY_PARAM_MASS = 2,
      BODY_PARAM_INERTIA = 3,
      BODY_PARAM_CENTER_OF_MASS = 4,
      BODY_PARAM_GRAVITY_SCALE = 5,
      BODY_PARAM_LINEAR_DAMP_MODE = 6,
      BODY_PARAM_ANGULAR_DAMP_MODE = 7,
      BODY_PARAM_LINEAR_DAMP = 8,
      BODY_PARAM_ANGULAR_DAMP = 9,
      BODY_PARAM_MAX = 10,
    }

    enum BodyState {
      BODY_STATE_TRANSFORM = 0,
      BODY_STATE_LINEAR_VELOCITY = 1,
      BODY_STATE_ANGULAR_VELOCITY = 2,
      BODY_STATE_SLEEPING = 3,
      BODY_STATE_CAN_SLEEP = 4,
    }

    enum CCDMode {
      CCD_MODE_DISABLED = 0,
      CCD_MODE_CAST_RAY = 1,
      CCD_MODE_CAST_SHAPE = 2,
    }

    enum DampedSpringParam {
      DAMPED_SPRING_REST_LENGTH = 0,
      DAMPED_SPRING_STIFFNESS = 1,
      DAMPED_SPRING_DAMPING = 2,
    }

    enum JointParam {
      JOINT_PARAM_BIAS = 0,
      JOINT_PARAM_MAX_BIAS = 1,
      JOINT_PARAM_MAX_FORCE = 2,
    }

    enum JointType {
      JOINT_TYPE_PIN = 0,
      JOINT_TYPE_GROOVE = 1,
      JOINT_TYPE_DAMPED_SPRING = 2,
      JOINT_TYPE_MAX = 3,
    }

    enum PinJointFlag {
      PIN_JOINT_FLAG_ANGULAR_LIMIT_ENABLED = 0,
      PIN_JOINT_FLAG_MOTOR_ENABLED = 1,
    }

    enum PinJointParam {
      PIN_JOINT_SOFTNESS = 0,
      PIN_JOINT_LIMIT_UPPER = 1,
      PIN_JOINT_LIMIT_LOWER = 2,
      PIN_JOINT_MOTOR_TARGET_VELOCITY = 3,
    }

    enum ProcessInfo {
      INFO_ACTIVE_OBJECTS = 0,
      INFO_COLLISION_PAIRS = 1,
      INFO_ISLAND_COUNT = 2,
    }

    enum ShapeType {
      SHAPE_WORLD_BOUNDARY = 0,
      SHAPE_SEPARATION_RAY = 1,
      SHAPE_SEGMENT = 2,
      SHAPE_CIRCLE = 3,
      SHAPE_RECTANGLE = 4,
      SHAPE_CAPSULE = 5,
      SHAPE_CONVEX_POLYGON = 6,
      SHAPE_CONCAVE_POLYGON = 7,
      SHAPE_CUSTOM = 8,
    }

    enum SpaceParameter {
      SPACE_PARAM_CONTACT_RECYCLE_RADIUS = 0,
      SPACE_PARAM_CONTACT_MAX_SEPARATION = 1,
      SPACE_PARAM_CONTACT_MAX_ALLOWED_PENETRATION = 2,
      SPACE_PARAM_CONTACT_DEFAULT_BIAS = 3,
      SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD = 4,
      SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD = 5,
      SPACE_PARAM_BODY_TIME_TO_SLEEP = 6,
      SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS = 7,
      SPACE_PARAM_SOLVER_ITERATIONS = 8,
    }

    func area_add_shape(area: RID, shape: RID, transform: Transform2D = Transform2D(Vector2(1, 0), Vector2(0, 1), Vector2(0, 0)), disabled: bool = false)
    func area_attach_canvas_instance_id(area: RID, id: int)
    func area_attach_object_instance_id(area: RID, id: int)
    func area_clear_shapes(area: RID)
    func area_create() -> RID
    func area_get_canvas_instance_id(area: RID) -> int
    func area_get_collision_layer(area: RID) -> int
    func area_get_collision_mask(area: RID) -> int
    func area_get_object_instance_id(area: RID) -> int
    func area_get_param(area: RID, param: enum AreaParameter) -> Variant
    func area_get_shape(area: RID, shape_idx: int) -> RID
    func area_get_shape_count(area: RID) -> int
    func area_get_shape_transform(area: RID, shape_idx: int) -> Transform2D
    func area_get_space(area: RID) -> RID
    func area_get_transform(area: RID) -> Transform2D
    func area_remove_shape(area: RID, shape_idx: int)
    func area_set_area_monitor_callback(area: RID, callback: Callable)
    func area_set_collision_layer(area: RID, layer: int)
    func area_set_collision_mask(area: RID, mask: int)
    func area_set_monitor_callback(area: RID, callback: Callable)
    func area_set_monitorable(area: RID, monitorable: bool)
    func area_set_param(area: RID, param: enum AreaParameter, value: Variant)
    func area_set_shape(area: RID, shape_idx: int, shape: RID)
    func area_set_shape_disabled(area: RID, shape_idx: int, disabled: bool)
    func area_set_shape_transform(area: RID, shape_idx: int, transform: Transform2D)
    func area_set_space(area: RID, space: RID)
    func area_set_transform(area: RID, transform: Transform2D)
    func body_add_collision_exception(body: RID, excepted_body: RID)
    func body_add_constant_central_force(body: RID, force: Vector2)
    func body_add_constant_force(body: RID, force: Vector2, position: Vector2 = Vector2(0, 0))
    func body_add_constant_torque(body: RID, torque: float)
    func body_add_shape(body: RID, shape: RID, transform: Transform2D = Transform2D(Vector2(1, 0), Vector2(0, 1), Vector2(0, 0)), disabled: bool = false)
    func body_apply_central_force(body: RID, force: Vector2)
    func body_apply_central_impulse(body: RID, impulse: Vector2)
    func body_apply_force(body: RID, force: Vector2, position: Vector2 = Vector2(0, 0))
    func body_apply_impulse(body: RID, impulse: Vector2, position: Vector2 = Vector2(0, 0))
    func body_apply_torque(body: RID, torque: float)
    func body_apply_torque_impulse(body: RID, impulse: float)
    func body_attach_canvas_instance_id(body: RID, id: int)
    func body_attach_object_instance_id(body: RID, id: int)
    func body_clear_shapes(body: RID)
    func body_create() -> RID
    func body_get_canvas_instance_id(body: RID) -> int
    func body_get_collision_layer(body: RID) -> int
    func body_get_collision_mask(body: RID) -> int
    func body_get_collision_priority(body: RID) -> float
    func body_get_constant_force(body: RID) -> Vector2
    func body_get_constant_torque(body: RID) -> float
    func body_get_continuous_collision_detection_mode(body: RID) -> enum CCDMode
    func body_get_direct_state(body: RID) -> PhysicsDirectBodyState2D
    func body_get_max_contacts_reported(body: RID) -> int
    func body_get_mode(body: RID) -> enum BodyMode
    func body_get_object_instance_id(body: RID) -> int
    func body_get_param(body: RID, param: enum BodyParameter) -> Variant
    func body_get_shape(body: RID, shape_idx: int) -> RID
    func body_get_shape_count(body: RID) -> int
    func body_get_shape_transform(body: RID, shape_idx: int) -> Transform2D
    func body_get_space(body: RID) -> RID
    func body_get_state(body: RID, state: enum BodyState) -> Variant
    func body_is_omitting_force_integration(body: RID) -> bool
    func body_remove_collision_exception(body: RID, excepted_body: RID)
    func body_remove_shape(body: RID, shape_idx: int)
    func body_reset_mass_properties(body: RID)
    func body_set_axis_velocity(body: RID, axis_velocity: Vector2)
    func body_set_collision_layer(body: RID, layer: int)
    func body_set_collision_mask(body: RID, mask: int)
    func body_set_collision_priority(body: RID, priority: float)
    func body_set_constant_force(body: RID, force: Vector2)
    func body_set_constant_torque(body: RID, torque: float)
    func body_set_continuous_collision_detection_mode(body: RID, mode: enum CCDMode)
    func body_set_force_integration_callback(body: RID, callable: Callable, userdata: Variant = null)
    func body_set_max_contacts_reported(body: RID, amount: int)
    func body_set_mode(body: RID, mode: enum BodyMode)
    func body_set_omit_force_integration(body: RID, enable: bool)
    func body_set_param(body: RID, param: enum BodyParameter, value: Variant)
    func body_set_shape(body: RID, shape_idx: int, shape: RID)
    func body_set_shape_as_one_way_collision(body: RID, shape_idx: int, enable: bool, margin: float)
    func body_set_shape_disabled(body: RID, shape_idx: int, disabled: bool)
    func body_set_shape_transform(body: RID, shape_idx: int, transform: Transform2D)
    func body_set_space(body: RID, space: RID)
    func body_set_state(body: RID, state: enum BodyState, value: Variant)
    func body_test_motion(body: RID, parameters: PhysicsTestMotionParameters2D, result: PhysicsTestMotionResult2D = null) -> bool
    func capsule_shape_create() -> RID
    func circle_shape_create() -> RID
    func concave_polygon_shape_create() -> RID
    func convex_polygon_shape_create() -> RID
    func damped_spring_joint_get_param(joint: RID, param: enum DampedSpringParam) -> float
    func damped_spring_joint_set_param(joint: RID, param: enum DampedSpringParam, value: float)
    func free_rid(rid: RID)
    func get_process_info(process_info: enum ProcessInfo) -> int
    func joint_clear(joint: RID)
    func joint_create() -> RID
    func joint_disable_collisions_between_bodies(joint: RID, disable: bool)
    func joint_get_param(joint: RID, param: enum JointParam) -> float
    func joint_get_type(joint: RID) -> enum JointType
    func joint_is_disabled_collisions_between_bodies(joint: RID) -> bool
    func joint_make_damped_spring(joint: RID, anchor_a: Vector2, anchor_b: Vector2, body_a: RID, body_b: RID = RID())
    func joint_make_groove(joint: RID, groove1_a: Vector2, groove2_a: Vector2, anchor_b: Vector2, body_a: RID = RID(), body_b: RID = RID())
    func joint_make_pin(joint: RID, anchor: Vector2, body_a: RID, body_b: RID = RID())
    func joint_set_param(joint: RID, param: enum JointParam, value: float)
    func pin_joint_get_flag(joint: RID, flag: enum PinJointFlag) -> bool
    func pin_joint_get_param(joint: RID, param: enum PinJointParam) -> float
    func pin_joint_set_flag(joint: RID, flag: enum PinJointFlag, enabled: bool)
    func pin_joint_set_param(joint: RID, param: enum PinJointParam, value: float)
    func rectangle_shape_create() -> RID
    func segment_shape_create() -> RID
    func separation_ray_shape_create() -> RID
    func set_active(active: bool)
    func shape_get_data(shape: RID) -> Variant
    func shape_get_type(shape: RID) -> enum ShapeType
    func shape_set_data(shape: RID, data: Variant)
    func space_create() -> RID
    func space_get_direct_state(space: RID) -> PhysicsDirectSpaceState2D
    func space_get_param(space: RID, param: enum SpaceParameter) -> float
    func space_is_active(space: RID) -> bool
    func space_set_active(space: RID, active: bool)
    func space_set_param(space: RID, param: enum SpaceParameter, value: float)
    func world_boundary_shape_create() -> RID

# Object < PhysicsServer2DManager (singleton)

  class PhysicsServer2DManager extends Object:

    func register_server(name: String, create_callback: Callable)
    func set_default_server(name: String, priority: int)

# Object < PhysicsServer3D (singleton)

  class PhysicsServer3D extends Object:

    enum AreaBodyStatus {
      AREA_BODY_ADDED = 0,
      AREA_BODY_REMOVED = 1,
    }

    enum AreaParameter {
      AREA_PARAM_GRAVITY_OVERRIDE_MODE = 0,
      AREA_PARAM_GRAVITY = 1,
      AREA_PARAM_GRAVITY_VECTOR = 2,
      AREA_PARAM_GRAVITY_IS_POINT = 3,
      AREA_PARAM_GRAVITY_POINT_UNIT_DISTANCE = 4,
      AREA_PARAM_LINEAR_DAMP_OVERRIDE_MODE = 5,
      AREA_PARAM_LINEAR_DAMP = 6,
      AREA_PARAM_ANGULAR_DAMP_OVERRIDE_MODE = 7,
      AREA_PARAM_ANGULAR_DAMP = 8,
      AREA_PARAM_PRIORITY = 9,
      AREA_PARAM_WIND_FORCE_MAGNITUDE = 10,
      AREA_PARAM_WIND_SOURCE = 11,
      AREA_PARAM_WIND_DIRECTION = 12,
      AREA_PARAM_WIND_ATTENUATION_FACTOR = 13,
    }

    enum AreaSpaceOverrideMode {
      AREA_SPACE_OVERRIDE_DISABLED = 0,
      AREA_SPACE_OVERRIDE_COMBINE = 1,
      AREA_SPACE_OVERRIDE_COMBINE_REPLACE = 2,
      AREA_SPACE_OVERRIDE_REPLACE = 3,
      AREA_SPACE_OVERRIDE_REPLACE_COMBINE = 4,
    }

    enum BodyAxis {
      BODY_AXIS_LINEAR_X = 1,
      BODY_AXIS_LINEAR_Y = 2,
      BODY_AXIS_LINEAR_Z = 4,
      BODY_AXIS_ANGULAR_X = 8,
      BODY_AXIS_ANGULAR_Y = 16,
      BODY_AXIS_ANGULAR_Z = 32,
    }

    enum BodyDampMode {
      BODY_DAMP_MODE_COMBINE = 0,
      BODY_DAMP_MODE_REPLACE = 1,
    }

    enum BodyMode {
      BODY_MODE_STATIC = 0,
      BODY_MODE_KINEMATIC = 1,
      BODY_MODE_RIGID = 2,
      BODY_MODE_RIGID_LINEAR = 3,
    }

    enum BodyParameter {
      BODY_PARAM_BOUNCE = 0,
      BODY_PARAM_FRICTION = 1,
      BODY_PARAM_MASS = 2,
      BODY_PARAM_INERTIA = 3,
      BODY_PARAM_CENTER_OF_MASS = 4,
      BODY_PARAM_GRAVITY_SCALE = 5,
      BODY_PARAM_LINEAR_DAMP_MODE = 6,
      BODY_PARAM_ANGULAR_DAMP_MODE = 7,
      BODY_PARAM_LINEAR_DAMP = 8,
      BODY_PARAM_ANGULAR_DAMP = 9,
      BODY_PARAM_MAX = 10,
    }

    enum BodyState {
      BODY_STATE_TRANSFORM = 0,
      BODY_STATE_LINEAR_VELOCITY = 1,
      BODY_STATE_ANGULAR_VELOCITY = 2,
      BODY_STATE_SLEEPING = 3,
      BODY_STATE_CAN_SLEEP = 4,
    }

    enum ConeTwistJointParam {
      CONE_TWIST_JOINT_SWING_SPAN = 0,
      CONE_TWIST_JOINT_TWIST_SPAN = 1,
      CONE_TWIST_JOINT_BIAS = 2,
      CONE_TWIST_JOINT_SOFTNESS = 3,
      CONE_TWIST_JOINT_RELAXATION = 4,
    }

    enum G6DOFJointAxisFlag {
      G6DOF_JOINT_FLAG_ENABLE_LINEAR_LIMIT = 0,
      G6DOF_JOINT_FLAG_ENABLE_ANGULAR_LIMIT = 1,
      G6DOF_JOINT_FLAG_ENABLE_MOTOR = 4,
      G6DOF_JOINT_FLAG_ENABLE_LINEAR_MOTOR = 5,
    }

    enum G6DOFJointAxisParam {
      G6DOF_JOINT_LINEAR_LOWER_LIMIT = 0,
      G6DOF_JOINT_LINEAR_UPPER_LIMIT = 1,
      G6DOF_JOINT_LINEAR_LIMIT_SOFTNESS = 2,
      G6DOF_JOINT_LINEAR_RESTITUTION = 3,
      G6DOF_JOINT_LINEAR_DAMPING = 4,
      G6DOF_JOINT_LINEAR_MOTOR_TARGET_VELOCITY = 5,
      G6DOF_JOINT_LINEAR_MOTOR_FORCE_LIMIT = 6,
      G6DOF_JOINT_ANGULAR_LOWER_LIMIT = 10,
      G6DOF_JOINT_ANGULAR_UPPER_LIMIT = 11,
      G6DOF_JOINT_ANGULAR_LIMIT_SOFTNESS = 12,
      G6DOF_JOINT_ANGULAR_DAMPING = 13,
      G6DOF_JOINT_ANGULAR_RESTITUTION = 14,
      G6DOF_JOINT_ANGULAR_FORCE_LIMIT = 15,
      G6DOF_JOINT_ANGULAR_ERP = 16,
      G6DOF_JOINT_ANGULAR_MOTOR_TARGET_VELOCITY = 17,
      G6DOF_JOINT_ANGULAR_MOTOR_FORCE_LIMIT = 18,
    }

    enum HingeJointFlag {
      HINGE_JOINT_FLAG_USE_LIMIT = 0,
      HINGE_JOINT_FLAG_ENABLE_MOTOR = 1,
    }

    enum HingeJointParam {
      HINGE_JOINT_BIAS = 0,
      HINGE_JOINT_LIMIT_UPPER = 1,
      HINGE_JOINT_LIMIT_LOWER = 2,
      HINGE_JOINT_LIMIT_BIAS = 3,
      HINGE_JOINT_LIMIT_SOFTNESS = 4,
      HINGE_JOINT_LIMIT_RELAXATION = 5,
      HINGE_JOINT_MOTOR_TARGET_VELOCITY = 6,
      HINGE_JOINT_MOTOR_MAX_IMPULSE = 7,
    }

    enum JointType {
      JOINT_TYPE_PIN = 0,
      JOINT_TYPE_HINGE = 1,
      JOINT_TYPE_SLIDER = 2,
      JOINT_TYPE_CONE_TWIST = 3,
      JOINT_TYPE_6DOF = 4,
      JOINT_TYPE_MAX = 5,
    }

    enum PinJointParam {
      PIN_JOINT_BIAS = 0,
      PIN_JOINT_DAMPING = 1,
      PIN_JOINT_IMPULSE_CLAMP = 2,
    }

    enum ProcessInfo {
      INFO_ACTIVE_OBJECTS = 0,
      INFO_COLLISION_PAIRS = 1,
      INFO_ISLAND_COUNT = 2,
    }

    enum ShapeType {
      SHAPE_WORLD_BOUNDARY = 0,
      SHAPE_SEPARATION_RAY = 1,
      SHAPE_SPHERE = 2,
      SHAPE_BOX = 3,
      SHAPE_CAPSULE = 4,
      SHAPE_CYLINDER = 5,
      SHAPE_CONVEX_POLYGON = 6,
      SHAPE_CONCAVE_POLYGON = 7,
      SHAPE_HEIGHTMAP = 8,
      SHAPE_SOFT_BODY = 9,
      SHAPE_CUSTOM = 10,
    }

    enum SliderJointParam {
      SLIDER_JOINT_LINEAR_LIMIT_UPPER = 0,
      SLIDER_JOINT_LINEAR_LIMIT_LOWER = 1,
      SLIDER_JOINT_LINEAR_LIMIT_SOFTNESS = 2,
      SLIDER_JOINT_LINEAR_LIMIT_RESTITUTION = 3,
      SLIDER_JOINT_LINEAR_LIMIT_DAMPING = 4,
      SLIDER_JOINT_LINEAR_MOTION_SOFTNESS = 5,
      SLIDER_JOINT_LINEAR_MOTION_RESTITUTION = 6,
      SLIDER_JOINT_LINEAR_MOTION_DAMPING = 7,
      SLIDER_JOINT_LINEAR_ORTHOGONAL_SOFTNESS = 8,
      SLIDER_JOINT_LINEAR_ORTHOGONAL_RESTITUTION = 9,
      SLIDER_JOINT_LINEAR_ORTHOGONAL_DAMPING = 10,
      SLIDER_JOINT_ANGULAR_LIMIT_UPPER = 11,
      SLIDER_JOINT_ANGULAR_LIMIT_LOWER = 12,
      SLIDER_JOINT_ANGULAR_LIMIT_SOFTNESS = 13,
      SLIDER_JOINT_ANGULAR_LIMIT_RESTITUTION = 14,
      SLIDER_JOINT_ANGULAR_LIMIT_DAMPING = 15,
      SLIDER_JOINT_ANGULAR_MOTION_SOFTNESS = 16,
      SLIDER_JOINT_ANGULAR_MOTION_RESTITUTION = 17,
      SLIDER_JOINT_ANGULAR_MOTION_DAMPING = 18,
      SLIDER_JOINT_ANGULAR_ORTHOGONAL_SOFTNESS = 19,
      SLIDER_JOINT_ANGULAR_ORTHOGONAL_RESTITUTION = 20,
      SLIDER_JOINT_ANGULAR_ORTHOGONAL_DAMPING = 21,
      SLIDER_JOINT_MAX = 22,
    }

    enum SpaceParameter {
      SPACE_PARAM_CONTACT_RECYCLE_RADIUS = 0,
      SPACE_PARAM_CONTACT_MAX_SEPARATION = 1,
      SPACE_PARAM_CONTACT_MAX_ALLOWED_PENETRATION = 2,
      SPACE_PARAM_CONTACT_DEFAULT_BIAS = 3,
      SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD = 4,
      SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD = 5,
      SPACE_PARAM_BODY_TIME_TO_SLEEP = 6,
      SPACE_PARAM_SOLVER_ITERATIONS = 7,
    }

    func area_add_shape(area: RID, shape: RID, transform: Transform3D = Transform3D(Vector3(1, 0, 0), Vector3(0, 1, 0), Vector3(0, 0, 1), Vector3(0, 0, 0)), disabled: bool = false)
    func area_attach_object_instance_id(area: RID, id: int)
    func area_clear_shapes(area: RID)
    func area_create() -> RID
    func area_get_collision_layer(area: RID) -> int
    func area_get_collision_mask(area: RID) -> int
    func area_get_object_instance_id(area: RID) -> int
    func area_get_param(area: RID, param: enum AreaParameter) -> Variant
    func area_get_shape(area: RID, shape_idx: int) -> RID
    func area_get_shape_count(area: RID) -> int
    func area_get_shape_transform(area: RID, shape_idx: int) -> Transform3D
    func area_get_space(area: RID) -> RID
    func area_get_transform(area: RID) -> Transform3D
    func area_remove_shape(area: RID, shape_idx: int)
    func area_set_area_monitor_callback(area: RID, callback: Callable)
    func area_set_collision_layer(area: RID, layer: int)
    func area_set_collision_mask(area: RID, mask: int)
    func area_set_monitor_callback(area: RID, callback: Callable)
    func area_set_monitorable(area: RID, monitorable: bool)
    func area_set_param(area: RID, param: enum AreaParameter, value: Variant)
    func area_set_ray_pickable(area: RID, enable: bool)
    func area_set_shape(area: RID, shape_idx: int, shape: RID)
    func area_set_shape_disabled(area: RID, shape_idx: int, disabled: bool)
    func area_set_shape_transform(area: RID, shape_idx: int, transform: Transform3D)
    func area_set_space(area: RID, space: RID)
    func area_set_transform(area: RID, transform: Transform3D)
    func body_add_collision_exception(body: RID, excepted_body: RID)
    func body_add_constant_central_force(body: RID, force: Vector3)
    func body_add_constant_force(body: RID, force: Vector3, position: Vector3 = Vector3(0, 0, 0))
    func body_add_constant_torque(body: RID, torque: Vector3)
    func body_add_shape(body: RID, shape: RID, transform: Transform3D = Transform3D(Vector3(1, 0, 0), Vector3(0, 1, 0), Vector3(0, 0, 1), Vector3(0, 0, 0)), disabled: bool = false)
    func body_apply_central_force(body: RID, force: Vector3)
    func body_apply_central_impulse(body: RID, impulse: Vector3)
    func body_apply_force(body: RID, force: Vector3, position: Vector3 = Vector3(0, 0, 0))
    func body_apply_impulse(body: RID, impulse: Vector3, position: Vector3 = Vector3(0, 0, 0))
    func body_apply_torque(body: RID, torque: Vector3)
    func body_apply_torque_impulse(body: RID, impulse: Vector3)
    func body_attach_object_instance_id(body: RID, id: int)
    func body_clear_shapes(body: RID)
    func body_create() -> RID
    func body_get_collision_layer(body: RID) -> int
    func body_get_collision_mask(body: RID) -> int
    func body_get_collision_priority(body: RID) -> float
    func body_get_constant_force(body: RID) -> Vector3
    func body_get_constant_torque(body: RID) -> Vector3
    func body_get_direct_state(body: RID) -> PhysicsDirectBodyState3D
    func body_get_max_contacts_reported(body: RID) -> int
    func body_get_mode(body: RID) -> enum BodyMode
    func body_get_object_instance_id(body: RID) -> int
    func body_get_param(body: RID, param: enum BodyParameter) -> Variant
    func body_get_shape(body: RID, shape_idx: int) -> RID
    func body_get_shape_count(body: RID) -> int
    func body_get_shape_transform(body: RID, shape_idx: int) -> Transform3D
    func body_get_space(body: RID) -> RID
    func body_get_state(body: RID, state: enum BodyState) -> Variant
    func body_is_axis_locked(body: RID, axis: enum BodyAxis) -> bool
    func body_is_continuous_collision_detection_enabled(body: RID) -> bool
    func body_is_omitting_force_integration(body: RID) -> bool
    func body_remove_collision_exception(body: RID, excepted_body: RID)
    func body_remove_shape(body: RID, shape_idx: int)
    func body_reset_mass_properties(body: RID)
    func body_set_axis_lock(body: RID, axis: enum BodyAxis, lock: bool)
    func body_set_axis_velocity(body: RID, axis_velocity: Vector3)
    func body_set_collision_layer(body: RID, layer: int)
    func body_set_collision_mask(body: RID, mask: int)
    func body_set_collision_priority(body: RID, priority: float)
    func body_set_constant_force(body: RID, force: Vector3)
    func body_set_constant_torque(body: RID, torque: Vector3)
    func body_set_enable_continuous_collision_detection(body: RID, enable: bool)
    func body_set_force_integration_callback(body: RID, callable: Callable, userdata: Variant = null)
    func body_set_max_contacts_reported(body: RID, amount: int)
    func body_set_mode(body: RID, mode: enum BodyMode)
    func body_set_omit_force_integration(body: RID, enable: bool)
    func body_set_param(body: RID, param: enum BodyParameter, value: Variant)
    func body_set_ray_pickable(body: RID, enable: bool)
    func body_set_shape(body: RID, shape_idx: int, shape: RID)
    func body_set_shape_disabled(body: RID, shape_idx: int, disabled: bool)
    func body_set_shape_transform(body: RID, shape_idx: int, transform: Transform3D)
    func body_set_space(body: RID, space: RID)
    func body_set_state(body: RID, state: enum BodyState, value: Variant)
    func body_test_motion(body: RID, parameters: PhysicsTestMotionParameters3D, result: PhysicsTestMotionResult3D = null) -> bool
    func box_shape_create() -> RID
    func capsule_shape_create() -> RID
    func concave_polygon_shape_create() -> RID
    func cone_twist_joint_get_param(joint: RID, param: enum ConeTwistJointParam) -> float
    func cone_twist_joint_set_param(joint: RID, param: enum ConeTwistJointParam, value: float)
    func convex_polygon_shape_create() -> RID
    func custom_shape_create() -> RID
    func cylinder_shape_create() -> RID
    func free_rid(rid: RID)
    func generic_6dof_joint_get_flag(joint: RID, axis: enum Vector3.Axis, flag: enum G6DOFJointAxisFlag) -> bool
    func generic_6dof_joint_get_param(joint: RID, axis: enum Vector3.Axis, param: enum G6DOFJointAxisParam) -> float
    func generic_6dof_joint_set_flag(joint: RID, axis: enum Vector3.Axis, flag: enum G6DOFJointAxisFlag, enable: bool)
    func generic_6dof_joint_set_param(joint: RID, axis: enum Vector3.Axis, param: enum G6DOFJointAxisParam, value: float)
    func get_process_info(process_info: enum ProcessInfo) -> int
    func heightmap_shape_create() -> RID
    func hinge_joint_get_flag(joint: RID, flag: enum HingeJointFlag) -> bool
    func hinge_joint_get_param(joint: RID, param: enum HingeJointParam) -> float
    func hinge_joint_set_flag(joint: RID, flag: enum HingeJointFlag, enabled: bool)
    func hinge_joint_set_param(joint: RID, param: enum HingeJointParam, value: float)
    func joint_clear(joint: RID)
    func joint_create() -> RID
    func joint_disable_collisions_between_bodies(joint: RID, disable: bool)
    func joint_get_solver_priority(joint: RID) -> int
    func joint_get_type(joint: RID) -> enum JointType
    func joint_is_disabled_collisions_between_bodies(joint: RID) -> bool
    func joint_make_cone_twist(joint: RID, body_A: RID, local_ref_A: Transform3D, body_B: RID, local_ref_B: Transform3D)
    func joint_make_generic_6dof(joint: RID, body_A: RID, local_ref_A: Transform3D, body_B: RID, local_ref_B: Transform3D)
    func joint_make_hinge(joint: RID, body_A: RID, hinge_A: Transform3D, body_B: RID, hinge_B: Transform3D)
    func joint_make_pin(joint: RID, body_A: RID, local_A: Vector3, body_B: RID, local_B: Vector3)
    func joint_make_slider(joint: RID, body_A: RID, local_ref_A: Transform3D, body_B: RID, local_ref_B: Transform3D)
    func joint_set_solver_priority(joint: RID, priority: int)
    func pin_joint_get_local_a(joint: RID) -> Vector3
    func pin_joint_get_local_b(joint: RID) -> Vector3
    func pin_joint_get_param(joint: RID, param: enum PinJointParam) -> float
    func pin_joint_set_local_a(joint: RID, local_A: Vector3)
    func pin_joint_set_local_b(joint: RID, local_B: Vector3)
    func pin_joint_set_param(joint: RID, param: enum PinJointParam, value: float)
    func separation_ray_shape_create() -> RID
    func set_active(active: bool)
    func shape_get_data(shape: RID) -> Variant
    func shape_get_type(shape: RID) -> enum ShapeType
    func shape_set_data(shape: RID, data: Variant)
    func slider_joint_get_param(joint: RID, param: enum SliderJointParam) -> float
    func slider_joint_set_param(joint: RID, param: enum SliderJointParam, value: float)
    func soft_body_get_bounds(body: RID) -> AABB
    func space_create() -> RID
    func space_get_direct_state(space: RID) -> PhysicsDirectSpaceState3D
    func space_get_param(space: RID, param: enum SpaceParameter) -> float
    func space_is_active(space: RID) -> bool
    func space_set_active(space: RID, active: bool)
    func space_set_param(space: RID, param: enum SpaceParameter, value: float)
    func sphere_shape_create() -> RID
    func world_boundary_shape_create() -> RID

# Object < PhysicsServer3DManager (singleton)

  class PhysicsServer3DManager extends Object:

    func register_server(name: String, create_callback: Callable)
    func set_default_server(name: String, priority: int)

# Object < PhysicsServer3DRenderingServerHandler

  class PhysicsServer3DRenderingServerHandler extends Object:

    func set_aabb(aabb: AABB)
    func set_normal(vertex_id: int, normal: Vector3)
    func set_vertex(vertex_id: int, vertex: Vector3)

    func _set_aabb(aabb: AABB)
    func _set_normal(vertex_id: int, normal: Vector3)
    func _set_vertex(vertex_id: int, vertex: Vector3)

# Object < ProjectSettings (singleton)

  class ProjectSettings extends Object:

    var "application/boot_splash/bg_color": Color = Color(0.14, 0.14, 0.14, 1)
    var "application/boot_splash/fullsize": bool = true
    var "application/boot_splash/image": String = ""
    var "application/boot_splash/minimum_display_time": int = 0
    var "application/boot_splash/show_image": bool = true
    var "application/boot_splash/use_filter": bool = true
    var "application/config/auto_accept_quit": bool = true
    var "application/config/custom_user_dir_name": String = ""
    var "application/config/description": String = ""
    var "application/config/icon": String = ""
    var "application/config/macos_native_icon": String = ""
    var "application/config/name": String = ""
    var "application/config/name_localized": Dictionary = {}
    var "application/config/project_settings_override": String = ""
    var "application/config/quit_on_go_back": bool = true
    var "application/config/use_custom_user_dir": bool = false
    var "application/config/use_hidden_project_data_directory": bool = true
    var "application/config/version": String = ""
    var "application/config/windows_native_icon": String = ""
    var "application/run/delta_smoothing": bool = true
    var "application/run/disable_stderr": bool = false
    var "application/run/disable_stdout": bool = false
    var "application/run/flush_stdout_on_print": bool = false
    var "application/run/flush_stdout_on_print.debug": bool = true
    var "application/run/frame_delay_msec": int = 0
    var "application/run/low_processor_mode": bool = false
    var "application/run/low_processor_mode_sleep_usec": int = 6900
    var "application/run/main_loop_type": String = "SceneTree"
    var "application/run/main_scene": String = ""
    var "application/run/max_fps": int = 0
    var "audio/buses/channel_disable_threshold_db": float = -60.0
    var "audio/buses/channel_disable_time": float = 2.0
    var "audio/buses/default_bus_layout": String = "res://default_bus_layout.tres"
    var "audio/driver/driver": String
    var "audio/driver/enable_input": bool = false
    var "audio/driver/mix_rate": int = 44100
    var "audio/driver/mix_rate.web": int = 0
    var "audio/driver/output_latency": int = 15
    var "audio/driver/output_latency.web": int = 50
    var "audio/general/2d_panning_strength": float = 0.5
    var "audio/general/3d_panning_strength": float = 0.5
    var "audio/general/ios/mix_with_others": bool = false
    var "audio/general/ios/session_category": int = 0
    var "audio/general/text_to_speech": bool = false
    var "audio/video/video_delay_compensation_ms": int = 0
    var "collada/use_ambient": bool = false
    var "compression/formats/gzip/compression_level": int = -1
    var "compression/formats/zlib/compression_level": int = -1
    var "compression/formats/zstd/compression_level": int = 3
    var "compression/formats/zstd/long_distance_matching": bool = false
    var "compression/formats/zstd/window_log_size": int = 27
    var "debug/canvas_items/debug_redraw_color": Color = Color(1, 0.2, 0.2, 0.5)
    var "debug/canvas_items/debug_redraw_time": float = 1.0
    var "debug/file_logging/enable_file_logging": bool = false
    var "debug/file_logging/enable_file_logging.pc": bool = true
    var "debug/file_logging/log_path": String = "user://logs/godot.log"
    var "debug/file_logging/max_log_files": int = 5
    var "debug/gdscript/warnings/assert_always_false": int = 1
    var "debug/gdscript/warnings/assert_always_true": int = 1
    var "debug/gdscript/warnings/confusable_identifier": int = 1
    var "debug/gdscript/warnings/confusable_local_declaration": int = 1
    var "debug/gdscript/warnings/confusable_local_usage": int = 1
    var "debug/gdscript/warnings/constant_used_as_function": int = 1
    var "debug/gdscript/warnings/deprecated_keyword": int = 1
    var "debug/gdscript/warnings/empty_file": int = 1
    var "debug/gdscript/warnings/enable": bool = true
    var "debug/gdscript/warnings/exclude_addons": bool = true
    var "debug/gdscript/warnings/function_used_as_property": int = 1
    var "debug/gdscript/warnings/get_node_default_without_onready": int = 2
    var "debug/gdscript/warnings/incompatible_ternary": int = 1
    var "debug/gdscript/warnings/inference_on_variant": int = 2
    var "debug/gdscript/warnings/inferred_declaration": int = 0
    var "debug/gdscript/warnings/int_as_enum_without_cast": int = 1
    var "debug/gdscript/warnings/int_as_enum_without_match": int = 1
    var "debug/gdscript/warnings/integer_division": int = 1
    var "debug/gdscript/warnings/narrowing_conversion": int = 1
    var "debug/gdscript/warnings/native_method_override": int = 2
    var "debug/gdscript/warnings/onready_with_export": int = 2
    var "debug/gdscript/warnings/property_used_as_function": int = 1
    var "debug/gdscript/warnings/redundant_await": int = 1
    var "debug/gdscript/warnings/redundant_static_unload": int = 1
    var "debug/gdscript/warnings/renamed_in_godot_4_hint": bool = 1
    var "debug/gdscript/warnings/return_value_discarded": int = 0
    var "debug/gdscript/warnings/shadowed_global_identifier": int = 1
    var "debug/gdscript/warnings/shadowed_variable": int = 1
    var "debug/gdscript/warnings/shadowed_variable_base_class": int = 1
    var "debug/gdscript/warnings/standalone_expression": int = 1
    var "debug/gdscript/warnings/standalone_ternary": int = 1
    var "debug/gdscript/warnings/static_called_on_instance": int = 1
    var "debug/gdscript/warnings/unassigned_variable": int = 1
    var "debug/gdscript/warnings/unassigned_variable_op_assign": int = 1
    var "debug/gdscript/warnings/unreachable_code": int = 1
    var "debug/gdscript/warnings/unreachable_pattern": int = 1
    var "debug/gdscript/warnings/unsafe_call_argument": int = 0
    var "debug/gdscript/warnings/unsafe_cast": int = 0
    var "debug/gdscript/warnings/unsafe_method_access": int = 0
    var "debug/gdscript/warnings/unsafe_property_access": int = 0
    var "debug/gdscript/warnings/unsafe_void_return": int = 1
    var "debug/gdscript/warnings/untyped_declaration": int = 0
    var "debug/gdscript/warnings/unused_local_constant": int = 1
    var "debug/gdscript/warnings/unused_parameter": int = 1
    var "debug/gdscript/warnings/unused_private_class_variable": int = 1
    var "debug/gdscript/warnings/unused_signal": int = 1
    var "debug/gdscript/warnings/unused_variable": int = 1
    var "debug/settings/crash_handler/message": String = "Please include this when reporting the bug to the project developer."
    var "debug/settings/crash_handler/message.editor": String = "Please include this when reporting the bug on: https://github.com/godotengine/godot/issues"
    var "debug/settings/gdscript/max_call_stack": int = 1024
    var "debug/settings/profiler/max_functions": int = 16384
    var "debug/settings/stdout/print_fps": bool = false
    var "debug/settings/stdout/print_gpu_profile": bool = false
    var "debug/settings/stdout/verbose_stdout": bool = false
    var "debug/shader_language/warnings/device_limit_exceeded": bool = true
    var "debug/shader_language/warnings/enable": bool = true
    var "debug/shader_language/warnings/float_comparison": bool = true
    var "debug/shader_language/warnings/formatting_error": bool = true
    var "debug/shader_language/warnings/treat_warnings_as_errors": bool = false
    var "debug/shader_language/warnings/unused_constant": bool = true
    var "debug/shader_language/warnings/unused_function": bool = true
    var "debug/shader_language/warnings/unused_local_variable": bool = true
    var "debug/shader_language/warnings/unused_struct": bool = true
    var "debug/shader_language/warnings/unused_uniform": bool = true
    var "debug/shader_language/warnings/unused_varying": bool = true
    var "debug/shapes/avoidance/agents_radius_color": Color = Color(1, 1, 0, 0.25)
    var "debug/shapes/avoidance/enable_agents_radius": bool = true
    var "debug/shapes/avoidance/enable_obstacles_radius": bool = true
    var "debug/shapes/avoidance/enable_obstacles_static": bool = true
    var "debug/shapes/avoidance/obstacles_radius_color": Color = Color(1, 0.5, 0, 0.25)
    var "debug/shapes/avoidance/obstacles_static_edge_pushin_color": Color = Color(1, 0, 0, 1)
    var "debug/shapes/avoidance/obstacles_static_edge_pushout_color": Color = Color(1, 1, 0, 1)
    var "debug/shapes/avoidance/obstacles_static_face_pushin_color": Color = Color(1, 0, 0, 0)
    var "debug/shapes/avoidance/obstacles_static_face_pushout_color": Color = Color(1, 1, 0, 0.5)
    var "debug/shapes/collision/contact_color": Color = Color(1, 0.2, 0.1, 0.8)
    var "debug/shapes/collision/draw_2d_outlines": bool = true
    var "debug/shapes/collision/max_contacts_displayed": int = 10000
    var "debug/shapes/collision/shape_color": Color = Color(0, 0.6, 0.7, 0.42)
    var "debug/shapes/navigation/agent_path_color": Color = Color(1, 0, 0, 1)
    var "debug/shapes/navigation/agent_path_point_size": float = 4.0
    var "debug/shapes/navigation/edge_connection_color": Color = Color(1, 0, 1, 1)
    var "debug/shapes/navigation/enable_agent_paths": bool = true
    var "debug/shapes/navigation/enable_agent_paths_xray": bool = true
    var "debug/shapes/navigation/enable_edge_connections": bool = true
    var "debug/shapes/navigation/enable_edge_connections_xray": bool = true
    var "debug/shapes/navigation/enable_edge_lines": bool = true
    var "debug/shapes/navigation/enable_edge_lines_xray": bool = true
    var "debug/shapes/navigation/enable_geometry_face_random_color": bool = true
    var "debug/shapes/navigation/enable_link_connections": bool = true
    var "debug/shapes/navigation/enable_link_connections_xray": bool = true
    var "debug/shapes/navigation/geometry_edge_color": Color = Color(0.5, 1, 1, 1)
    var "debug/shapes/navigation/geometry_edge_disabled_color": Color = Color(0.5, 0.5, 0.5, 1)
    var "debug/shapes/navigation/geometry_face_color": Color = Color(0.5, 1, 1, 0.4)
    var "debug/shapes/navigation/geometry_face_disabled_color": Color = Color(0.5, 0.5, 0.5, 0.4)
    var "debug/shapes/navigation/link_connection_color": Color = Color(1, 0.5, 1, 1)
    var "debug/shapes/navigation/link_connection_disabled_color": Color = Color(0.5, 0.5, 0.5, 1)
    var "debug/shapes/paths/geometry_color": Color = Color(0.1, 1, 0.7, 0.4)
    var "debug/shapes/paths/geometry_width": float = 2.0
    var "display/mouse_cursor/custom_image": String = ""
    var "display/mouse_cursor/custom_image_hotspot": Vector2 = Vector2(0, 0)
    var "display/mouse_cursor/tooltip_position_offset": Vector2 = Vector2(10, 10)
    var "display/window/dpi/allow_hidpi": bool = true
    var "display/window/energy_saving/keep_screen_on": bool = true
    var "display/window/energy_saving/keep_screen_on.editor": bool = false
    var "display/window/handheld/orientation": int = 0
    var "display/window/ios/allow_high_refresh_rate": bool = true
    var "display/window/ios/hide_home_indicator": bool = true
    var "display/window/ios/hide_status_bar": bool = true
    var "display/window/ios/suppress_ui_gesture": bool = true
    var "display/window/per_pixel_transparency/allowed": bool = false
    var "display/window/size/always_on_top": bool = false
    var "display/window/size/borderless": bool = false
    var "display/window/size/extend_to_title": bool = false
    var "display/window/size/initial_position": Vector2i = Vector2i(0, 0)
    var "display/window/size/initial_position_type": int = 1
    var "display/window/size/initial_screen": int = 0
    var "display/window/size/mode": int = 0
    var "display/window/size/no_focus": bool = false
    var "display/window/size/resizable": bool = true
    var "display/window/size/transparent": bool = false
    var "display/window/size/viewport_height": int = 648
    var "display/window/size/viewport_width": int = 1152
    var "display/window/size/window_height_override": int = 0
    var "display/window/size/window_width_override": int = 0
    var "display/window/stretch/aspect": String = "keep"
    var "display/window/stretch/mode": String = "disabled"
    var "display/window/stretch/scale": float = 1.0
    var "display/window/stretch/scale_mode": String = "fractional"
    var "display/window/subwindows/embed_subwindows": bool = true
    var "display/window/vsync/vsync_mode": int = 1
    var "dotnet/project/assembly_name": String = ""
    var "dotnet/project/assembly_reload_attempts": int = 3
    var "dotnet/project/solution_directory": String = ""
    var "editor/export/convert_text_resources_to_binary": bool = true
    var "editor/import/reimport_missing_imported_files": bool = true
    var "editor/import/use_multiple_threads": bool = true
    var "editor/movie_writer/disable_vsync": bool = false
    var "editor/movie_writer/fps": int = 60
    var "editor/movie_writer/mix_rate": int = 48000
    var "editor/movie_writer/mjpeg_quality": float = 0.75
    var "editor/movie_writer/movie_file": String = ""
    var "editor/movie_writer/speaker_mode": int = 0
    var "editor/naming/default_signal_callback_name": String = "_on_{node_name}_{signal_name}"
    var "editor/naming/default_signal_callback_to_self_name": String = "_on_{signal_name}"
    var "editor/naming/node_name_casing": int = 0
    var "editor/naming/node_name_num_separator": int = 0
    var "editor/naming/scene_name_casing": int = 2
    var "editor/run/main_run_args": String = ""
    var "editor/script/search_in_file_extensions": PackedStringArray = PackedStringArray("gd", "gdshader")
    var "editor/script/templates_search_path": String = "res://script_templates"
    var "editor/version_control/autoload_on_startup": bool = false
    var "editor/version_control/plugin_name": String = ""
    var "filesystem/import/blender/enabled": bool = true
    var "filesystem/import/blender/enabled.android": bool = false
    var "filesystem/import/blender/enabled.web": bool = false
    var "filesystem/import/fbx/enabled": bool = true
    var "filesystem/import/fbx/enabled.android": bool = false
    var "filesystem/import/fbx/enabled.web": bool = false
    var "gui/common/default_scroll_deadzone": int = 0
    var "gui/common/snap_controls_to_pixels": bool = true
    var "gui/common/swap_cancel_ok": bool
    var "gui/common/text_edit_undo_stack_max_size": int = 1024
    var "gui/fonts/dynamic_fonts/use_oversampling": bool = true
    var "gui/theme/custom": String = ""
    var "gui/theme/custom_font": String = ""
    var "gui/theme/default_font_antialiasing": int = 1
    var "gui/theme/default_font_generate_mipmaps": bool = false
    var "gui/theme/default_font_hinting": int = 1
    var "gui/theme/default_font_multichannel_signed_distance_field": bool = false
    var "gui/theme/default_font_subpixel_positioning": int = 1
    var "gui/theme/default_theme_scale": float = 1.0
    var "gui/theme/lcd_subpixel_layout": int = 1
    var "gui/timers/button_shortcut_feedback_highlight_time": float = 0.2
    var "gui/timers/incremental_search_max_interval_msec": int = 2000
    var "gui/timers/text_edit_idle_detect_sec": float = 3
    var "gui/timers/tooltip_delay_sec": float = 0.5
    var "input_devices/buffering/agile_event_flushing": bool = false
    var "input_devices/compatibility/legacy_just_pressed_behavior": bool = false
    var "input_devices/pen_tablet/driver": String
    var "input_devices/pen_tablet/driver.windows": String
    var "input_devices/pointing/android/enable_long_press_as_right_click": bool = false
    var "input_devices/pointing/android/enable_pan_and_scale_gestures": bool = false
    var "input_devices/pointing/emulate_mouse_from_touch": bool = true
    var "input_devices/pointing/emulate_touch_from_mouse": bool = false
    var "input/ui_accept": Dictionary
    var "input/ui_cancel": Dictionary
    var "input/ui_copy": Dictionary
    var "input/ui_cut": Dictionary
    var "input/ui_down": Dictionary
    var "input/ui_end": Dictionary
    var "input/ui_filedialog_refresh": Dictionary
    var "input/ui_filedialog_show_hidden": Dictionary
    var "input/ui_filedialog_up_one_level": Dictionary
    var "input/ui_focus_next": Dictionary
    var "input/ui_focus_prev": Dictionary
    var "input/ui_graph_delete": Dictionary
    var "input/ui_graph_duplicate": Dictionary
    var "input/ui_home": Dictionary
    var "input/ui_left": Dictionary
    var "input/ui_menu": Dictionary
    var "input/ui_page_down": Dictionary
    var "input/ui_page_up": Dictionary
    var "input/ui_paste": Dictionary
    var "input/ui_redo": Dictionary
    var "input/ui_right": Dictionary
    var "input/ui_select": Dictionary
    var "input/ui_swap_input_direction": Dictionary
    var "input/ui_text_add_selection_for_next_occurrence": Dictionary
    var "input/ui_text_backspace": Dictionary
    var "input/ui_text_backspace_all_to_left": Dictionary
    var "input/ui_text_backspace_all_to_left.macos": Dictionary
    var "input/ui_text_backspace_word": Dictionary
    var "input/ui_text_backspace_word.macos": Dictionary
    var "input/ui_text_caret_add_above": Dictionary
    var "input/ui_text_caret_add_above.macos": Dictionary
    var "input/ui_text_caret_add_below": Dictionary
    var "input/ui_text_caret_add_below.macos": Dictionary
    var "input/ui_text_caret_document_end": Dictionary
    var "input/ui_text_caret_document_end.macos": Dictionary
    var "input/ui_text_caret_document_start": Dictionary
    var "input/ui_text_caret_document_start.macos": Dictionary
    var "input/ui_text_caret_down": Dictionary
    var "input/ui_text_caret_left": Dictionary
    var "input/ui_text_caret_line_end": Dictionary
    var "input/ui_text_caret_line_end.macos": Dictionary
    var "input/ui_text_caret_line_start": Dictionary
    var "input/ui_text_caret_line_start.macos": Dictionary
    var "input/ui_text_caret_page_down": Dictionary
    var "input/ui_text_caret_page_up": Dictionary
    var "input/ui_text_caret_right": Dictionary
    var "input/ui_text_caret_up": Dictionary
    var "input/ui_text_caret_word_left": Dictionary
    var "input/ui_text_caret_word_left.macos": Dictionary
    var "input/ui_text_caret_word_right": Dictionary
    var "input/ui_text_caret_word_right.macos": Dictionary
    var "input/ui_text_clear_carets_and_selection": Dictionary
    var "input/ui_text_completion_accept": Dictionary
    var "input/ui_text_completion_query": Dictionary
    var "input/ui_text_completion_replace": Dictionary
    var "input/ui_text_dedent": Dictionary
    var "input/ui_text_delete": Dictionary
    var "input/ui_text_delete_all_to_right": Dictionary
    var "input/ui_text_delete_all_to_right.macos": Dictionary
    var "input/ui_text_delete_word": Dictionary
    var "input/ui_text_delete_word.macos": Dictionary
    var "input/ui_text_indent": Dictionary
    var "input/ui_text_newline": Dictionary
    var "input/ui_text_newline_above": Dictionary
    var "input/ui_text_newline_blank": Dictionary
    var "input/ui_text_scroll_down": Dictionary
    var "input/ui_text_scroll_down.macos": Dictionary
    var "input/ui_text_scroll_up": Dictionary
    var "input/ui_text_scroll_up.macos": Dictionary
    var "input/ui_text_select_all": Dictionary
    var "input/ui_text_select_word_under_caret": Dictionary
    var "input/ui_text_select_word_under_caret.macos": Dictionary
    var "input/ui_text_submit": Dictionary
    var "input/ui_text_toggle_insert_mode": Dictionary
    var "input/ui_undo": Dictionary
    var "input/ui_up": Dictionary
    var "internationalization/locale/fallback": String = "en"
    var "internationalization/locale/include_text_server_data": bool = false
    var "internationalization/locale/test": String = ""
    var "internationalization/pseudolocalization/double_vowels": bool = false
    var "internationalization/pseudolocalization/expansion_ratio": float = 0.0
    var "internationalization/pseudolocalization/fake_bidi": bool = false
    var "internationalization/pseudolocalization/override": bool = false
    var "internationalization/pseudolocalization/prefix": String = "["
    var "internationalization/pseudolocalization/replace_with_accents": bool = true
    var "internationalization/pseudolocalization/skip_placeholders": bool = true
    var "internationalization/pseudolocalization/suffix": String = "]"
    var "internationalization/pseudolocalization/use_pseudolocalization": bool = false
    var "internationalization/rendering/force_right_to_left_layout_direction": bool = false
    var "internationalization/rendering/root_node_layout_direction": int = 0
    var "internationalization/rendering/text_driver": String = ""
    var "layer_names/2d_navigation/layer_1": String = ""
    var "layer_names/2d_navigation/layer_10": String = ""
    var "layer_names/2d_navigation/layer_11": String = ""
    var "layer_names/2d_navigation/layer_12": String = ""
    var "layer_names/2d_navigation/layer_13": String = ""
    var "layer_names/2d_navigation/layer_14": String = ""
    var "layer_names/2d_navigation/layer_15": String = ""
    var "layer_names/2d_navigation/layer_16": String = ""
    var "layer_names/2d_navigation/layer_17": String = ""
    var "layer_names/2d_navigation/layer_18": String = ""
    var "layer_names/2d_navigation/layer_19": String = ""
    var "layer_names/2d_navigation/layer_2": String = ""
    var "layer_names/2d_navigation/layer_20": String = ""
    var "layer_names/2d_navigation/layer_21": String = ""
    var "layer_names/2d_navigation/layer_22": String = ""
    var "layer_names/2d_navigation/layer_23": String = ""
    var "layer_names/2d_navigation/layer_24": String = ""
    var "layer_names/2d_navigation/layer_25": String = ""
    var "layer_names/2d_navigation/layer_26": String = ""
    var "layer_names/2d_navigation/layer_27": String = ""
    var "layer_names/2d_navigation/layer_28": String = ""
    var "layer_names/2d_navigation/layer_29": String = ""
    var "layer_names/2d_navigation/layer_3": String = ""
    var "layer_names/2d_navigation/layer_30": String = ""
    var "layer_names/2d_navigation/layer_31": String = ""
    var "layer_names/2d_navigation/layer_32": String = ""
    var "layer_names/2d_navigation/layer_4": String = ""
    var "layer_names/2d_navigation/layer_5": String = ""
    var "layer_names/2d_navigation/layer_6": String = ""
    var "layer_names/2d_navigation/layer_7": String = ""
    var "layer_names/2d_navigation/layer_8": String = ""
    var "layer_names/2d_navigation/layer_9": String = ""
    var "layer_names/2d_physics/layer_1": String = ""
    var "layer_names/2d_physics/layer_10": String = ""
    var "layer_names/2d_physics/layer_11": String = ""
    var "layer_names/2d_physics/layer_12": String = ""
    var "layer_names/2d_physics/layer_13": String = ""
    var "layer_names/2d_physics/layer_14": String = ""
    var "layer_names/2d_physics/layer_15": String = ""
    var "layer_names/2d_physics/layer_16": String = ""
    var "layer_names/2d_physics/layer_17": String = ""
    var "layer_names/2d_physics/layer_18": String = ""
    var "layer_names/2d_physics/layer_19": String = ""
    var "layer_names/2d_physics/layer_2": String = ""
    var "layer_names/2d_physics/layer_20": String = ""
    var "layer_names/2d_physics/layer_21": String = ""
    var "layer_names/2d_physics/layer_22": String = ""
    var "layer_names/2d_physics/layer_23": String = ""
    var "layer_names/2d_physics/layer_24": String = ""
    var "layer_names/2d_physics/layer_25": String = ""
    var "layer_names/2d_physics/layer_26": String = ""
    var "layer_names/2d_physics/layer_27": String = ""
    var "layer_names/2d_physics/layer_28": String = ""
    var "layer_names/2d_physics/layer_29": String = ""
    var "layer_names/2d_physics/layer_3": String = ""
    var "layer_names/2d_physics/layer_30": String = ""
    var "layer_names/2d_physics/layer_31": String = ""
    var "layer_names/2d_physics/layer_32": String = ""
    var "layer_names/2d_physics/layer_4": String = ""
    var "layer_names/2d_physics/layer_5": String = ""
    var "layer_names/2d_physics/layer_6": String = ""
    var "layer_names/2d_physics/layer_7": String = ""
    var "layer_names/2d_physics/layer_8": String = ""
    var "layer_names/2d_physics/layer_9": String = ""
    var "layer_names/2d_render/layer_1": String = ""
    var "layer_names/2d_render/layer_10": String = ""
    var "layer_names/2d_render/layer_11": String = ""
    var "layer_names/2d_render/layer_12": String = ""
    var "layer_names/2d_render/layer_13": String = ""
    var "layer_names/2d_render/layer_14": String = ""
    var "layer_names/2d_render/layer_15": String = ""
    var "layer_names/2d_render/layer_16": String = ""
    var "layer_names/2d_render/layer_17": String = ""
    var "layer_names/2d_render/layer_18": String = ""
    var "layer_names/2d_render/layer_19": String = ""
    var "layer_names/2d_render/layer_2": String = ""
    var "layer_names/2d_render/layer_20": String = ""
    var "layer_names/2d_render/layer_3": String = ""
    var "layer_names/2d_render/layer_4": String = ""
    var "layer_names/2d_render/layer_5": String = ""
    var "layer_names/2d_render/layer_6": String = ""
    var "layer_names/2d_render/layer_7": String = ""
    var "layer_names/2d_render/layer_8": String = ""
    var "layer_names/2d_render/layer_9": String = ""
    var "layer_names/3d_navigation/layer_1": String = ""
    var "layer_names/3d_navigation/layer_10": String = ""
    var "layer_names/3d_navigation/layer_11": String = ""
    var "layer_names/3d_navigation/layer_12": String = ""
    var "layer_names/3d_navigation/layer_13": String = ""
    var "layer_names/3d_navigation/layer_14": String = ""
    var "layer_names/3d_navigation/layer_15": String = ""
    var "layer_names/3d_navigation/layer_16": String = ""
    var "layer_names/3d_navigation/layer_17": String = ""
    var "layer_names/3d_navigation/layer_18": String = ""
    var "layer_names/3d_navigation/layer_19": String = ""
    var "layer_names/3d_navigation/layer_2": String = ""
    var "layer_names/3d_navigation/layer_20": String = ""
    var "layer_names/3d_navigation/layer_21": String = ""
    var "layer_names/3d_navigation/layer_22": String = ""
    var "layer_names/3d_navigation/layer_23": String = ""
    var "layer_names/3d_navigation/layer_24": String = ""
    var "layer_names/3d_navigation/layer_25": String = ""
    var "layer_names/3d_navigation/layer_26": String = ""
    var "layer_names/3d_navigation/layer_27": String = ""
    var "layer_names/3d_navigation/layer_28": String = ""
    var "layer_names/3d_navigation/layer_29": String = ""
    var "layer_names/3d_navigation/layer_3": String = ""
    var "layer_names/3d_navigation/layer_30": String = ""
    var "layer_names/3d_navigation/layer_31": String = ""
    var "layer_names/3d_navigation/layer_32": String = ""
    var "layer_names/3d_navigation/layer_4": String = ""
    var "layer_names/3d_navigation/layer_5": String = ""
    var "layer_names/3d_navigation/layer_6": String = ""
    var "layer_names/3d_navigation/layer_7": String = ""
    var "layer_names/3d_navigation/layer_8": String = ""
    var "layer_names/3d_navigation/layer_9": String = ""
    var "layer_names/3d_physics/layer_1": String = ""
    var "layer_names/3d_physics/layer_10": String = ""
    var "layer_names/3d_physics/layer_11": String = ""
    var "layer_names/3d_physics/layer_12": String = ""
    var "layer_names/3d_physics/layer_13": String = ""
    var "layer_names/3d_physics/layer_14": String = ""
    var "layer_names/3d_physics/layer_15": String = ""
    var "layer_names/3d_physics/layer_16": String = ""
    var "layer_names/3d_physics/layer_17": String = ""
    var "layer_names/3d_physics/layer_18": String = ""
    var "layer_names/3d_physics/layer_19": String = ""
    var "layer_names/3d_physics/layer_2": String = ""
    var "layer_names/3d_physics/layer_20": String = ""
    var "layer_names/3d_physics/layer_21": String = ""
    var "layer_names/3d_physics/layer_22": String = ""
    var "layer_names/3d_physics/layer_23": String = ""
    var "layer_names/3d_physics/layer_24": String = ""
    var "layer_names/3d_physics/layer_25": String = ""
    var "layer_names/3d_physics/layer_26": String = ""
    var "layer_names/3d_physics/layer_27": String = ""
    var "layer_names/3d_physics/layer_28": String = ""
    var "layer_names/3d_physics/layer_29": String = ""
    var "layer_names/3d_physics/layer_3": String = ""
    var "layer_names/3d_physics/layer_30": String = ""
    var "layer_names/3d_physics/layer_31": String = ""
    var "layer_names/3d_physics/layer_32": String = ""
    var "layer_names/3d_physics/layer_4": String = ""
    var "layer_names/3d_physics/layer_5": String = ""
    var "layer_names/3d_physics/layer_6": String = ""
    var "layer_names/3d_physics/layer_7": String = ""
    var "layer_names/3d_physics/layer_8": String = ""
    var "layer_names/3d_physics/layer_9": String = ""
    var "layer_names/3d_render/layer_1": String = ""
    var "layer_names/3d_render/layer_10": String = ""
    var "layer_names/3d_render/layer_11": String = ""
    var "layer_names/3d_render/layer_12": String = ""
    var "layer_names/3d_render/layer_13": String = ""
    var "layer_names/3d_render/layer_14": String = ""
    var "layer_names/3d_render/layer_15": String = ""
    var "layer_names/3d_render/layer_16": String = ""
    var "layer_names/3d_render/layer_17": String = ""
    var "layer_names/3d_render/layer_18": String = ""
    var "layer_names/3d_render/layer_19": String = ""
    var "layer_names/3d_render/layer_2": String = ""
    var "layer_names/3d_render/layer_20": String = ""
    var "layer_names/3d_render/layer_3": String = ""
    var "layer_names/3d_render/layer_4": String = ""
    var "layer_names/3d_render/layer_5": String = ""
    var "layer_names/3d_render/layer_6": String = ""
    var "layer_names/3d_render/layer_7": String = ""
    var "layer_names/3d_render/layer_8": String = ""
    var "layer_names/3d_render/layer_9": String = ""
    var "layer_names/avoidance/layer_1": String = ""
    var "layer_names/avoidance/layer_10": String = ""
    var "layer_names/avoidance/layer_11": String = ""
    var "layer_names/avoidance/layer_12": String = ""
    var "layer_names/avoidance/layer_13": String = ""
    var "layer_names/avoidance/layer_14": String = ""
    var "layer_names/avoidance/layer_15": String = ""
    var "layer_names/avoidance/layer_16": String = ""
    var "layer_names/avoidance/layer_17": String = ""
    var "layer_names/avoidance/layer_18": String = ""
    var "layer_names/avoidance/layer_19": String = ""
    var "layer_names/avoidance/layer_2": String = ""
    var "layer_names/avoidance/layer_20": String = ""
    var "layer_names/avoidance/layer_21": String = ""
    var "layer_names/avoidance/layer_22": String = ""
    var "layer_names/avoidance/layer_23": String = ""
    var "layer_names/avoidance/layer_24": String = ""
    var "layer_names/avoidance/layer_25": String = ""
    var "layer_names/avoidance/layer_26": String = ""
    var "layer_names/avoidance/layer_27": String = ""
    var "layer_names/avoidance/layer_28": String = ""
    var "layer_names/avoidance/layer_29": String = ""
    var "layer_names/avoidance/layer_3": String = ""
    var "layer_names/avoidance/layer_30": String = ""
    var "layer_names/avoidance/layer_31": String = ""
    var "layer_names/avoidance/layer_32": String = ""
    var "layer_names/avoidance/layer_4": String = ""
    var "layer_names/avoidance/layer_5": String = ""
    var "layer_names/avoidance/layer_6": String = ""
    var "layer_names/avoidance/layer_7": String = ""
    var "layer_names/avoidance/layer_8": String = ""
    var "layer_names/avoidance/layer_9": String = ""
    var "memory/limits/message_queue/max_size_mb": int = 32
    var "memory/limits/multithreaded_server/rid_pool_prealloc": int = 60
    var "navigation/2d/default_cell_size": float = 1.0
    var "navigation/2d/default_edge_connection_margin": float = 1.0
    var "navigation/2d/default_link_connection_radius": float = 4.0
    var "navigation/2d/use_edge_connections": bool = true
    var "navigation/3d/default_cell_height": float = 0.25
    var "navigation/3d/default_cell_size": float = 0.25
    var "navigation/3d/default_edge_connection_margin": float = 0.25
    var "navigation/3d/default_link_connection_radius": float = 1.0
    var "navigation/3d/default_up": Vector3 = Vector3(0, 1, 0)
    var "navigation/3d/use_edge_connections": bool = true
    var "navigation/avoidance/thread_model/avoidance_use_high_priority_threads": bool = true
    var "navigation/avoidance/thread_model/avoidance_use_multiple_threads": bool = true
    var "navigation/baking/thread_model/baking_use_high_priority_threads": bool = true
    var "navigation/baking/thread_model/baking_use_multiple_threads": bool = true
    var "network/limits/debugger/max_chars_per_second": int = 32768
    var "network/limits/debugger/max_errors_per_second": int = 400
    var "network/limits/debugger/max_queued_messages": int = 2048
    var "network/limits/debugger/max_warnings_per_second": int = 400
    var "network/limits/packet_peer_stream/max_buffer_po2": int = 16
    var "network/limits/tcp/connect_timeout_seconds": int = 30
    var "network/limits/webrtc/max_channel_in_buffer_kb": int = 64
    var "network/tls/certificate_bundle_override": String = ""
    var "physics/2d/default_angular_damp": float = 1.0
    var "physics/2d/default_gravity": float = 980.0
    var "physics/2d/default_gravity_vector": Vector2 = Vector2(0, 1)
    var "physics/2d/default_linear_damp": float = 0.1
    var "physics/2d/physics_engine": String = "DEFAULT"
    var "physics/2d/run_on_separate_thread": bool = false
    var "physics/2d/sleep_threshold_angular": float = 0.139626
    var "physics/2d/sleep_threshold_linear": float = 2.0
    var "physics/2d/solver/contact_max_allowed_penetration": float = 0.3
    var "physics/2d/solver/contact_max_separation": float = 1.5
    var "physics/2d/solver/contact_recycle_radius": float = 1.0
    var "physics/2d/solver/default_constraint_bias": float = 0.2
    var "physics/2d/solver/default_contact_bias": float = 0.8
    var "physics/2d/solver/solver_iterations": int = 16
    var "physics/2d/time_before_sleep": float = 0.5
    var "physics/3d/default_angular_damp": float = 0.1
    var "physics/3d/default_gravity": float = 9.8
    var "physics/3d/default_gravity_vector": Vector3 = Vector3(0, -1, 0)
    var "physics/3d/default_linear_damp": float = 0.1
    var "physics/3d/physics_engine": String = "DEFAULT"
    var "physics/3d/run_on_separate_thread": bool = false
    var "physics/3d/sleep_threshold_angular": float = 0.139626
    var "physics/3d/sleep_threshold_linear": float = 0.1
    var "physics/3d/solver/contact_max_allowed_penetration": float = 0.01
    var "physics/3d/solver/contact_max_separation": float = 0.05
    var "physics/3d/solver/contact_recycle_radius": float = 0.01
    var "physics/3d/solver/default_contact_bias": float = 0.8
    var "physics/3d/solver/solver_iterations": int = 16
    var "physics/3d/time_before_sleep": float = 0.5
    var "physics/common/enable_object_picking": bool = true
    var "physics/common/max_physics_steps_per_frame": int = 8
    var "physics/common/physics_jitter_fix": float = 0.5
    var "physics/common/physics_ticks_per_second": int = 60
    var "rendering/2d/sdf/oversize": int = 1
    var "rendering/2d/sdf/scale": int = 1
    var "rendering/2d/shadow_atlas/size": int = 2048
    var "rendering/2d/snap/snap_2d_transforms_to_pixel": bool = false
    var "rendering/2d/snap/snap_2d_vertices_to_pixel": bool = false
    var "rendering/anti_aliasing/quality/msaa_2d": int = 0
    var "rendering/anti_aliasing/quality/msaa_3d": int = 0
    var "rendering/anti_aliasing/quality/screen_space_aa": int = 0
    var "rendering/anti_aliasing/quality/use_debanding": bool = false
    var "rendering/anti_aliasing/quality/use_taa": bool = false
    var "rendering/anti_aliasing/screen_space_roughness_limiter/amount": float = 0.25
    var "rendering/anti_aliasing/screen_space_roughness_limiter/enabled": bool = true
    var "rendering/anti_aliasing/screen_space_roughness_limiter/limit": float = 0.18
    var "rendering/camera/depth_of_field/depth_of_field_bokeh_quality": int = 1
    var "rendering/camera/depth_of_field/depth_of_field_bokeh_shape": int = 1
    var "rendering/camera/depth_of_field/depth_of_field_use_jitter": bool = false
    var "rendering/driver/depth_prepass/disable_for_vendors": String = "PowerVR,Mali,Adreno,Apple"
    var "rendering/driver/depth_prepass/enable": bool = true
    var "rendering/driver/threads/thread_model": int = 1
    var "rendering/environment/defaults/default_clear_color": Color = Color(0.3, 0.3, 0.3, 1)
    var "rendering/environment/defaults/default_environment": String = ""
    var "rendering/environment/glow/upscale_mode": int = 1
    var "rendering/environment/glow/upscale_mode.mobile": int = 0
    var "rendering/environment/screen_space_reflection/roughness_quality": int = 1
    var "rendering/environment/ssao/adaptive_target": float = 0.5
    var "rendering/environment/ssao/blur_passes": int = 2
    var "rendering/environment/ssao/fadeout_from": float = 50.0
    var "rendering/environment/ssao/fadeout_to": float = 300.0
    var "rendering/environment/ssao/half_size": bool = true
    var "rendering/environment/ssao/quality": int = 2
    var "rendering/environment/ssil/adaptive_target": float = 0.5
    var "rendering/environment/ssil/blur_passes": int = 4
    var "rendering/environment/ssil/fadeout_from": float = 50.0
    var "rendering/environment/ssil/fadeout_to": float = 300.0
    var "rendering/environment/ssil/half_size": bool = true
    var "rendering/environment/ssil/quality": int = 2
    var "rendering/environment/subsurface_scattering/subsurface_scattering_depth_scale": float = 0.01
    var "rendering/environment/subsurface_scattering/subsurface_scattering_quality": int = 1
    var "rendering/environment/subsurface_scattering/subsurface_scattering_scale": float = 0.05
    var "rendering/environment/volumetric_fog/use_filter": int = 1
    var "rendering/environment/volumetric_fog/volume_depth": int = 64
    var "rendering/environment/volumetric_fog/volume_size": int = 64
    var "rendering/gl_compatibility/driver": String
    var "rendering/gl_compatibility/driver.android": String
    var "rendering/gl_compatibility/driver.ios": String
    var "rendering/gl_compatibility/driver.linuxbsd": String
    var "rendering/gl_compatibility/driver.macos": String
    var "rendering/gl_compatibility/driver.web": String
    var "rendering/gl_compatibility/driver.windows": String
    var "rendering/gl_compatibility/fallback_to_angle": bool = true
    var "rendering/gl_compatibility/fallback_to_gles": bool = true
    var "rendering/gl_compatibility/fallback_to_native": bool = true
    var "rendering/gl_compatibility/force_angle_on_devices": Array
    var "rendering/gl_compatibility/item_buffer_size": int = 16384
    var "rendering/gl_compatibility/nvidia_disable_threaded_optimization": bool = true
    var "rendering/global_illumination/gi/use_half_resolution": bool = false
    var "rendering/global_illumination/sdfgi/frames_to_converge": int = 5
    var "rendering/global_illumination/sdfgi/frames_to_update_lights": int = 2
    var "rendering/global_illumination/sdfgi/probe_ray_count": int = 1
    var "rendering/global_illumination/voxel_gi/quality": int = 0
    var "rendering/lightmapping/bake_performance/max_rays_per_pass": int = 32
    var "rendering/lightmapping/bake_performance/max_rays_per_probe_pass": int = 64
    var "rendering/lightmapping/bake_performance/region_size": int = 512
    var "rendering/lightmapping/bake_quality/high_quality_probe_ray_count": int = 512
    var "rendering/lightmapping/bake_quality/high_quality_ray_count": int = 512
    var "rendering/lightmapping/bake_quality/low_quality_probe_ray_count": int = 64
    var "rendering/lightmapping/bake_quality/low_quality_ray_count": int = 32
    var "rendering/lightmapping/bake_quality/medium_quality_probe_ray_count": int = 256
    var "rendering/lightmapping/bake_quality/medium_quality_ray_count": int = 128
    var "rendering/lightmapping/bake_quality/ultra_quality_probe_ray_count": int = 2048
    var "rendering/lightmapping/bake_quality/ultra_quality_ray_count": int = 2048
    var "rendering/lightmapping/denoising/denoiser": int = 0
    var "rendering/lightmapping/primitive_meshes/texel_size": float = 0.2
    var "rendering/lightmapping/probe_capture/update_speed": float = 15
    var "rendering/lights_and_shadows/directional_shadow/16_bits": bool = true
    var "rendering/lights_and_shadows/directional_shadow/size": int = 4096
    var "rendering/lights_and_shadows/directional_shadow/size.mobile": int = 2048
    var "rendering/lights_and_shadows/directional_shadow/soft_shadow_filter_quality": int = 2
    var "rendering/lights_and_shadows/directional_shadow/soft_shadow_filter_quality.mobile": int = 0
    var "rendering/lights_and_shadows/positional_shadow/atlas_16_bits": bool = true
    var "rendering/lights_and_shadows/positional_shadow/atlas_quadrant_0_subdiv": int = 2
    var "rendering/lights_and_shadows/positional_shadow/atlas_quadrant_1_subdiv": int = 2
    var "rendering/lights_and_shadows/positional_shadow/atlas_quadrant_2_subdiv": int = 3
    var "rendering/lights_and_shadows/positional_shadow/atlas_quadrant_3_subdiv": int = 4
    var "rendering/lights_and_shadows/positional_shadow/atlas_size": int = 4096
    var "rendering/lights_and_shadows/positional_shadow/atlas_size.mobile": int = 2048
    var "rendering/lights_and_shadows/positional_shadow/soft_shadow_filter_quality": int = 2
    var "rendering/lights_and_shadows/positional_shadow/soft_shadow_filter_quality.mobile": int = 0
    var "rendering/lights_and_shadows/use_physical_light_units": bool = false
    var "rendering/limits/cluster_builder/max_clustered_elements": float = 512
    var "rendering/limits/forward_renderer/threaded_render_minimum_instances": int = 500
    var "rendering/limits/global_shader_variables/buffer_size": int = 65536
    var "rendering/limits/opengl/max_lights_per_object": int = 8
    var "rendering/limits/opengl/max_renderable_elements": int = 65536
    var "rendering/limits/opengl/max_renderable_lights": int = 32
    var "rendering/limits/spatial_indexer/threaded_cull_minimum_instances": int = 1000
    var "rendering/limits/spatial_indexer/update_iterations_per_frame": int = 10
    var "rendering/limits/time/time_rollover_secs": float = 3600
    var "rendering/mesh_lod/lod_change/threshold_pixels": float = 1.0
    var "rendering/occlusion_culling/bvh_build_quality": int = 2
    var "rendering/occlusion_culling/occlusion_rays_per_thread": int = 512
    var "rendering/occlusion_culling/use_occlusion_culling": bool = false
    var "rendering/reflections/reflection_atlas/reflection_count": int = 64
    var "rendering/reflections/reflection_atlas/reflection_size": int = 256
    var "rendering/reflections/reflection_atlas/reflection_size.mobile": int = 128
    var "rendering/reflections/sky_reflections/fast_filter_high_quality": bool = false
    var "rendering/reflections/sky_reflections/ggx_samples": int = 32
    var "rendering/reflections/sky_reflections/ggx_samples.mobile": int = 16
    var "rendering/reflections/sky_reflections/roughness_layers": int = 8
    var "rendering/reflections/sky_reflections/texture_array_reflections": bool = true
    var "rendering/reflections/sky_reflections/texture_array_reflections.mobile": bool = false
    var "rendering/renderer/rendering_method": String = "forward_plus"
    var "rendering/renderer/rendering_method.mobile": String = "mobile"
    var "rendering/renderer/rendering_method.web": String = "gl_compatibility"
    var "rendering/rendering_device/driver": String
    var "rendering/rendering_device/driver.android": String
    var "rendering/rendering_device/driver.ios": String
    var "rendering/rendering_device/driver.linuxbsd": String
    var "rendering/rendering_device/driver.macos": String
    var "rendering/rendering_device/driver.windows": String
    var "rendering/rendering_device/pipeline_cache/save_chunk_size_mb": float = 3.0
    var "rendering/rendering_device/staging_buffer/block_size_kb": int = 256
    var "rendering/rendering_device/staging_buffer/max_size_mb": int = 128
    var "rendering/rendering_device/staging_buffer/texture_upload_region_size_px": int = 64
    var "rendering/rendering_device/vulkan/max_descriptors_per_pool": int = 64
    var "rendering/scaling_3d/fsr_sharpness": float = 0.2
    var "rendering/scaling_3d/mode": int = 0
    var "rendering/scaling_3d/scale": float = 1.0
    var "rendering/shader_compiler/shader_cache/compress": bool = true
    var "rendering/shader_compiler/shader_cache/enabled": bool = true
    var "rendering/shader_compiler/shader_cache/strip_debug": bool = false
    var "rendering/shader_compiler/shader_cache/strip_debug.release": bool = true
    var "rendering/shader_compiler/shader_cache/use_zstd_compression": bool = true
    var "rendering/shading/overrides/force_lambert_over_burley": bool = false
    var "rendering/shading/overrides/force_lambert_over_burley.mobile": bool = true
    var "rendering/shading/overrides/force_vertex_shading": bool = false
    var "rendering/shading/overrides/force_vertex_shading.mobile": bool = true
    var "rendering/textures/canvas_textures/default_texture_filter": int = 1
    var "rendering/textures/canvas_textures/default_texture_repeat": int = 0
    var "rendering/textures/decals/filter": int = 3
    var "rendering/textures/default_filters/anisotropic_filtering_level": int = 2
    var "rendering/textures/default_filters/texture_mipmap_bias": float = 0.0
    var "rendering/textures/default_filters/use_nearest_mipmap_filter": bool = false
    var "rendering/textures/light_projectors/filter": int = 3
    var "rendering/textures/lossless_compression/force_png": bool = false
    var "rendering/textures/vram_compression/import_etc2_astc": bool = false
    var "rendering/textures/vram_compression/import_s3tc_bptc": bool = false
    var "rendering/textures/webp_compression/compression_method": int = 2
    var "rendering/textures/webp_compression/lossless_compression_factor": float = 25
    var "rendering/viewport/hdr_2d": bool = false
    var "rendering/viewport/transparent_background": bool = false
    var "rendering/vrs/mode": int = 0
    var "rendering/vrs/texture": String = ""
    var "threading/worker_pool/low_priority_thread_ratio": float = 0.3
    var "threading/worker_pool/max_threads": int = -1
    var "threading/worker_pool/use_system_threads_for_low_priority_tasks": bool = true
    var "xr/openxr/default_action_map": String = "res://openxr_action_map.tres"
    var "xr/openxr/enabled": bool = false
    var "xr/openxr/environment_blend_mode": int = "0"
    var "xr/openxr/extensions/eye_gaze_interaction": bool = false
    var "xr/openxr/extensions/hand_tracking": bool = true
    var "xr/openxr/form_factor": int = "0"
    var "xr/openxr/foveation_dynamic": bool = false
    var "xr/openxr/foveation_level": int = "0"
    var "xr/openxr/reference_space": int = "1"
    var "xr/openxr/startup_alert": bool = true
    var "xr/openxr/submit_depth_buffer": bool = false
    var "xr/openxr/view_configuration": int = "1"
    var "xr/shaders/enabled": bool = false

    signal settings_changed()

    func add_property_info(hint: Dictionary)
    func clear(name: String)
    func get_global_class_list() -> Array[Dictionary]
    func get_order(name: String) -> int
    func get_setting(name: String, default_value: Variant = null) -> Variant
    func get_setting_with_override(name: StringName) -> Variant
    func globalize_path(path: String) -> String
    func has_setting(name: String) -> bool
    func load_resource_pack(pack: String, replace_files: bool = true, offset: int = 0) -> bool
    func localize_path(path: String) -> String
    func save() -> enum Error
    func save_custom(file: String) -> enum Error
    func set_as_basic(name: String, basic: bool)
    func set_as_internal(name: String, internal: bool)
    func set_initial_value(name: String, value: Variant)
    func set_order(name: String, position: int)
    func set_restart_if_changed(name: String, restart: bool)
    func set_setting(name: String, value: Variant)

# Object < RenderingDevice (abstract)

  class RenderingDevice extends Object:

    const INVALID_FORMAT_ID = -1
    const INVALID_ID = -1

    enum BarrierMask {
      BARRIER_MASK_VERTEX = 1,
      BARRIER_MASK_COMPUTE = 2,
      BARRIER_MASK_TRANSFER = 4,
      BARRIER_MASK_FRAGMENT = 8,
      BARRIER_MASK_RASTER = 9,
      BARRIER_MASK_ALL_BARRIERS = 32767,
      BARRIER_MASK_NO_BARRIER = 32768,
    }

    enum BlendFactor {
      BLEND_FACTOR_ZERO = 0,
      BLEND_FACTOR_ONE = 1,
      BLEND_FACTOR_SRC_COLOR = 2,
      BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
      BLEND_FACTOR_DST_COLOR = 4,
      BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
      BLEND_FACTOR_SRC_ALPHA = 6,
      BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
      BLEND_FACTOR_DST_ALPHA = 8,
      BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
      BLEND_FACTOR_CONSTANT_COLOR = 10,
      BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
      BLEND_FACTOR_CONSTANT_ALPHA = 12,
      BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
      BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
      BLEND_FACTOR_SRC1_COLOR = 15,
      BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
      BLEND_FACTOR_SRC1_ALPHA = 17,
      BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
      BLEND_FACTOR_MAX = 19,
    }

    enum BlendOperation {
      BLEND_OP_ADD = 0,
      BLEND_OP_SUBTRACT = 1,
      BLEND_OP_REVERSE_SUBTRACT = 2,
      BLEND_OP_MINIMUM = 3,
      BLEND_OP_MAXIMUM = 4,
      BLEND_OP_MAX = 5,
    }

    enum CompareOperator {
      COMPARE_OP_NEVER = 0,
      COMPARE_OP_LESS = 1,
      COMPARE_OP_EQUAL = 2,
      COMPARE_OP_LESS_OR_EQUAL = 3,
      COMPARE_OP_GREATER = 4,
      COMPARE_OP_NOT_EQUAL = 5,
      COMPARE_OP_GREATER_OR_EQUAL = 6,
      COMPARE_OP_ALWAYS = 7,
      COMPARE_OP_MAX = 8,
    }

    enum DataFormat {
      DATA_FORMAT_R4G4_UNORM_PACK8 = 0,
      DATA_FORMAT_R4G4B4A4_UNORM_PACK16 = 1,
      DATA_FORMAT_B4G4R4A4_UNORM_PACK16 = 2,
      DATA_FORMAT_R5G6B5_UNORM_PACK16 = 3,
      DATA_FORMAT_B5G6R5_UNORM_PACK16 = 4,
      DATA_FORMAT_R5G5B5A1_UNORM_PACK16 = 5,
      DATA_FORMAT_B5G5R5A1_UNORM_PACK16 = 6,
      DATA_FORMAT_A1R5G5B5_UNORM_PACK16 = 7,
      DATA_FORMAT_R8_UNORM = 8,
      DATA_FORMAT_R8_SNORM = 9,
      DATA_FORMAT_R8_USCALED = 10,
      DATA_FORMAT_R8_SSCALED = 11,
      DATA_FORMAT_R8_UINT = 12,
      DATA_FORMAT_R8_SINT = 13,
      DATA_FORMAT_R8_SRGB = 14,
      DATA_FORMAT_R8G8_UNORM = 15,
      DATA_FORMAT_R8G8_SNORM = 16,
      DATA_FORMAT_R8G8_USCALED = 17,
      DATA_FORMAT_R8G8_SSCALED = 18,
      DATA_FORMAT_R8G8_UINT = 19,
      DATA_FORMAT_R8G8_SINT = 20,
      DATA_FORMAT_R8G8_SRGB = 21,
      DATA_FORMAT_R8G8B8_UNORM = 22,
      DATA_FORMAT_R8G8B8_SNORM = 23,
      DATA_FORMAT_R8G8B8_USCALED = 24,
      DATA_FORMAT_R8G8B8_SSCALED = 25,
      DATA_FORMAT_R8G8B8_UINT = 26,
      DATA_FORMAT_R8G8B8_SINT = 27,
      DATA_FORMAT_R8G8B8_SRGB = 28,
      DATA_FORMAT_B8G8R8_UNORM = 29,
      DATA_FORMAT_B8G8R8_SNORM = 30,
      DATA_FORMAT_B8G8R8_USCALED = 31,
      DATA_FORMAT_B8G8R8_SSCALED = 32,
      DATA_FORMAT_B8G8R8_UINT = 33,
      DATA_FORMAT_B8G8R8_SINT = 34,
      DATA_FORMAT_B8G8R8_SRGB = 35,
      DATA_FORMAT_R8G8B8A8_UNORM = 36,
      DATA_FORMAT_R8G8B8A8_SNORM = 37,
      DATA_FORMAT_R8G8B8A8_USCALED = 38,
      DATA_FORMAT_R8G8B8A8_SSCALED = 39,
      DATA_FORMAT_R8G8B8A8_UINT = 40,
      DATA_FORMAT_R8G8B8A8_SINT = 41,
      DATA_FORMAT_R8G8B8A8_SRGB = 42,
      DATA_FORMAT_B8G8R8A8_UNORM = 43,
      DATA_FORMAT_B8G8R8A8_SNORM = 44,
      DATA_FORMAT_B8G8R8A8_USCALED = 45,
      DATA_FORMAT_B8G8R8A8_SSCALED = 46,
      DATA_FORMAT_B8G8R8A8_UINT = 47,
      DATA_FORMAT_B8G8R8A8_SINT = 48,
      DATA_FORMAT_B8G8R8A8_SRGB = 49,
      DATA_FORMAT_A8B8G8R8_UNORM_PACK32 = 50,
      DATA_FORMAT_A8B8G8R8_SNORM_PACK32 = 51,
      DATA_FORMAT_A8B8G8R8_USCALED_PACK32 = 52,
      DATA_FORMAT_A8B8G8R8_SSCALED_PACK32 = 53,
      DATA_FORMAT_A8B8G8R8_UINT_PACK32 = 54,
      DATA_FORMAT_A8B8G8R8_SINT_PACK32 = 55,
      DATA_FORMAT_A8B8G8R8_SRGB_PACK32 = 56,
      DATA_FORMAT_A2R10G10B10_UNORM_PACK32 = 57,
      DATA_FORMAT_A2R10G10B10_SNORM_PACK32 = 58,
      DATA_FORMAT_A2R10G10B10_USCALED_PACK32 = 59,
      DATA_FORMAT_A2R10G10B10_SSCALED_PACK32 = 60,
      DATA_FORMAT_A2R10G10B10_UINT_PACK32 = 61,
      DATA_FORMAT_A2R10G10B10_SINT_PACK32 = 62,
      DATA_FORMAT_A2B10G10R10_UNORM_PACK32 = 63,
      DATA_FORMAT_A2B10G10R10_SNORM_PACK32 = 64,
      DATA_FORMAT_A2B10G10R10_USCALED_PACK32 = 65,
      DATA_FORMAT_A2B10G10R10_SSCALED_PACK32 = 66,
      DATA_FORMAT_A2B10G10R10_UINT_PACK32 = 67,
      DATA_FORMAT_A2B10G10R10_SINT_PACK32 = 68,
      DATA_FORMAT_R16_UNORM = 69,
      DATA_FORMAT_R16_SNORM = 70,
      DATA_FORMAT_R16_USCALED = 71,
      DATA_FORMAT_R16_SSCALED = 72,
      DATA_FORMAT_R16_UINT = 73,
      DATA_FORMAT_R16_SINT = 74,
      DATA_FORMAT_R16_SFLOAT = 75,
      DATA_FORMAT_R16G16_UNORM = 76,
      DATA_FORMAT_R16G16_SNORM = 77,
      DATA_FORMAT_R16G16_USCALED = 78,
      DATA_FORMAT_R16G16_SSCALED = 79,
      DATA_FORMAT_R16G16_UINT = 80,
      DATA_FORMAT_R16G16_SINT = 81,
      DATA_FORMAT_R16G16_SFLOAT = 82,
      DATA_FORMAT_R16G16B16_UNORM = 83,
      DATA_FORMAT_R16G16B16_SNORM = 84,
      DATA_FORMAT_R16G16B16_USCALED = 85,
      DATA_FORMAT_R16G16B16_SSCALED = 86,
      DATA_FORMAT_R16G16B16_UINT = 87,
      DATA_FORMAT_R16G16B16_SINT = 88,
      DATA_FORMAT_R16G16B16_SFLOAT = 89,
      DATA_FORMAT_R16G16B16A16_UNORM = 90,
      DATA_FORMAT_R16G16B16A16_SNORM = 91,
      DATA_FORMAT_R16G16B16A16_USCALED = 92,
      DATA_FORMAT_R16G16B16A16_SSCALED = 93,
      DATA_FORMAT_R16G16B16A16_UINT = 94,
      DATA_FORMAT_R16G16B16A16_SINT = 95,
      DATA_FORMAT_R16G16B16A16_SFLOAT = 96,
      DATA_FORMAT_R32_UINT = 97,
      DATA_FORMAT_R32_SINT = 98,
      DATA_FORMAT_R32_SFLOAT = 99,
      DATA_FORMAT_R32G32_UINT = 100,
      DATA_FORMAT_R32G32_SINT = 101,
      DATA_FORMAT_R32G32_SFLOAT = 102,
      DATA_FORMAT_R32G32B32_UINT = 103,
      DATA_FORMAT_R32G32B32_SINT = 104,
      DATA_FORMAT_R32G32B32_SFLOAT = 105,
      DATA_FORMAT_R32G32B32A32_UINT = 106,
      DATA_FORMAT_R32G32B32A32_SINT = 107,
      DATA_FORMAT_R32G32B32A32_SFLOAT = 108,
      DATA_FORMAT_R64_UINT = 109,
      DATA_FORMAT_R64_SINT = 110,
      DATA_FORMAT_R64_SFLOAT = 111,
      DATA_FORMAT_R64G64_UINT = 112,
      DATA_FORMAT_R64G64_SINT = 113,
      DATA_FORMAT_R64G64_SFLOAT = 114,
      DATA_FORMAT_R64G64B64_UINT = 115,
      DATA_FORMAT_R64G64B64_SINT = 116,
      DATA_FORMAT_R64G64B64_SFLOAT = 117,
      DATA_FORMAT_R64G64B64A64_UINT = 118,
      DATA_FORMAT_R64G64B64A64_SINT = 119,
      DATA_FORMAT_R64G64B64A64_SFLOAT = 120,
      DATA_FORMAT_B10G11R11_UFLOAT_PACK32 = 121,
      DATA_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 122,
      DATA_FORMAT_D16_UNORM = 123,
      DATA_FORMAT_X8_D24_UNORM_PACK32 = 124,
      DATA_FORMAT_D32_SFLOAT = 125,
      DATA_FORMAT_S8_UINT = 126,
      DATA_FORMAT_D16_UNORM_S8_UINT = 127,
      DATA_FORMAT_D24_UNORM_S8_UINT = 128,
      DATA_FORMAT_D32_SFLOAT_S8_UINT = 129,
      DATA_FORMAT_BC1_RGB_UNORM_BLOCK = 130,
      DATA_FORMAT_BC1_RGB_SRGB_BLOCK = 131,
      DATA_FORMAT_BC1_RGBA_UNORM_BLOCK = 132,
      DATA_FORMAT_BC1_RGBA_SRGB_BLOCK = 133,
      DATA_FORMAT_BC2_UNORM_BLOCK = 134,
      DATA_FORMAT_BC2_SRGB_BLOCK = 135,
      DATA_FORMAT_BC3_UNORM_BLOCK = 136,
      DATA_FORMAT_BC3_SRGB_BLOCK = 137,
      DATA_FORMAT_BC4_UNORM_BLOCK = 138,
      DATA_FORMAT_BC4_SNORM_BLOCK = 139,
      DATA_FORMAT_BC5_UNORM_BLOCK = 140,
      DATA_FORMAT_BC5_SNORM_BLOCK = 141,
      DATA_FORMAT_BC6H_UFLOAT_BLOCK = 142,
      DATA_FORMAT_BC6H_SFLOAT_BLOCK = 143,
      DATA_FORMAT_BC7_UNORM_BLOCK = 144,
      DATA_FORMAT_BC7_SRGB_BLOCK = 145,
      DATA_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 146,
      DATA_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 147,
      DATA_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 148,
      DATA_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 149,
      DATA_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 150,
      DATA_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 151,
      DATA_FORMAT_EAC_R11_UNORM_BLOCK = 152,
      DATA_FORMAT_EAC_R11_SNORM_BLOCK = 153,
      DATA_FORMAT_EAC_R11G11_UNORM_BLOCK = 154,
      DATA_FORMAT_EAC_R11G11_SNORM_BLOCK = 155,
      DATA_FORMAT_ASTC_4x4_UNORM_BLOCK = 156,
      DATA_FORMAT_ASTC_4x4_SRGB_BLOCK = 157,
      DATA_FORMAT_ASTC_5x4_UNORM_BLOCK = 158,
      DATA_FORMAT_ASTC_5x4_SRGB_BLOCK = 159,
      DATA_FORMAT_ASTC_5x5_UNORM_BLOCK = 160,
      DATA_FORMAT_ASTC_5x5_SRGB_BLOCK = 161,
      DATA_FORMAT_ASTC_6x5_UNORM_BLOCK = 162,
      DATA_FORMAT_ASTC_6x5_SRGB_BLOCK = 163,
      DATA_FORMAT_ASTC_6x6_UNORM_BLOCK = 164,
      DATA_FORMAT_ASTC_6x6_SRGB_BLOCK = 165,
      DATA_FORMAT_ASTC_8x5_UNORM_BLOCK = 166,
      DATA_FORMAT_ASTC_8x5_SRGB_BLOCK = 167,
      DATA_FORMAT_ASTC_8x6_UNORM_BLOCK = 168,
      DATA_FORMAT_ASTC_8x6_SRGB_BLOCK = 169,
      DATA_FORMAT_ASTC_8x8_UNORM_BLOCK = 170,
      DATA_FORMAT_ASTC_8x8_SRGB_BLOCK = 171,
      DATA_FORMAT_ASTC_10x5_UNORM_BLOCK = 172,
      DATA_FORMAT_ASTC_10x5_SRGB_BLOCK = 173,
      DATA_FORMAT_ASTC_10x6_UNORM_BLOCK = 174,
      DATA_FORMAT_ASTC_10x6_SRGB_BLOCK = 175,
      DATA_FORMAT_ASTC_10x8_UNORM_BLOCK = 176,
      DATA_FORMAT_ASTC_10x8_SRGB_BLOCK = 177,
      DATA_FORMAT_ASTC_10x10_UNORM_BLOCK = 178,
      DATA_FORMAT_ASTC_10x10_SRGB_BLOCK = 179,
      DATA_FORMAT_ASTC_12x10_UNORM_BLOCK = 180,
      DATA_FORMAT_ASTC_12x10_SRGB_BLOCK = 181,
      DATA_FORMAT_ASTC_12x12_UNORM_BLOCK = 182,
      DATA_FORMAT_ASTC_12x12_SRGB_BLOCK = 183,
      DATA_FORMAT_G8B8G8R8_422_UNORM = 184,
      DATA_FORMAT_B8G8R8G8_422_UNORM = 185,
      DATA_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 186,
      DATA_FORMAT_G8_B8R8_2PLANE_420_UNORM = 187,
      DATA_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 188,
      DATA_FORMAT_G8_B8R8_2PLANE_422_UNORM = 189,
      DATA_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 190,
      DATA_FORMAT_R10X6_UNORM_PACK16 = 191,
      DATA_FORMAT_R10X6G10X6_UNORM_2PACK16 = 192,
      DATA_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 193,
      DATA_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 194,
      DATA_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 195,
      DATA_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 196,
      DATA_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 197,
      DATA_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 198,
      DATA_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 199,
      DATA_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 200,
      DATA_FORMAT_R12X4_UNORM_PACK16 = 201,
      DATA_FORMAT_R12X4G12X4_UNORM_2PACK16 = 202,
      DATA_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 203,
      DATA_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 204,
      DATA_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 205,
      DATA_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 206,
      DATA_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 207,
      DATA_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 208,
      DATA_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 209,
      DATA_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 210,
      DATA_FORMAT_G16B16G16R16_422_UNORM = 211,
      DATA_FORMAT_B16G16R16G16_422_UNORM = 212,
      DATA_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 213,
      DATA_FORMAT_G16_B16R16_2PLANE_420_UNORM = 214,
      DATA_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 215,
      DATA_FORMAT_G16_B16R16_2PLANE_422_UNORM = 216,
      DATA_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 217,
      DATA_FORMAT_MAX = 218,
    }

    enum DeviceType {
      DEVICE_TYPE_OTHER = 0,
      DEVICE_TYPE_INTEGRATED_GPU = 1,
      DEVICE_TYPE_DISCRETE_GPU = 2,
      DEVICE_TYPE_VIRTUAL_GPU = 3,
      DEVICE_TYPE_CPU = 4,
      DEVICE_TYPE_MAX = 5,
    }

    enum DriverResource {
      DRIVER_RESOURCE_VULKAN_DEVICE = 0,
      DRIVER_RESOURCE_VULKAN_PHYSICAL_DEVICE = 1,
      DRIVER_RESOURCE_VULKAN_INSTANCE = 2,
      DRIVER_RESOURCE_VULKAN_QUEUE = 3,
      DRIVER_RESOURCE_VULKAN_QUEUE_FAMILY_INDEX = 4,
      DRIVER_RESOURCE_VULKAN_IMAGE = 5,
      DRIVER_RESOURCE_VULKAN_IMAGE_VIEW = 6,
      DRIVER_RESOURCE_VULKAN_IMAGE_NATIVE_TEXTURE_FORMAT = 7,
      DRIVER_RESOURCE_VULKAN_SAMPLER = 8,
      DRIVER_RESOURCE_VULKAN_DESCRIPTOR_SET = 9,
      DRIVER_RESOURCE_VULKAN_BUFFER = 10,
      DRIVER_RESOURCE_VULKAN_COMPUTE_PIPELINE = 11,
      DRIVER_RESOURCE_VULKAN_RENDER_PIPELINE = 12,
    }

    enum FinalAction {
      FINAL_ACTION_READ = 0,
      FINAL_ACTION_DISCARD = 1,
      FINAL_ACTION_CONTINUE = 2,
      FINAL_ACTION_MAX = 3,
    }

    enum IndexBufferFormat {
      INDEX_BUFFER_FORMAT_UINT16 = 0,
      INDEX_BUFFER_FORMAT_UINT32 = 1,
    }

    enum InitialAction {
      INITIAL_ACTION_CLEAR = 0,
      INITIAL_ACTION_CLEAR_REGION = 1,
      INITIAL_ACTION_CLEAR_REGION_CONTINUE = 2,
      INITIAL_ACTION_KEEP = 3,
      INITIAL_ACTION_DROP = 4,
      INITIAL_ACTION_CONTINUE = 5,
      INITIAL_ACTION_MAX = 6,
    }

    enum Limit {
      LIMIT_MAX_BOUND_UNIFORM_SETS = 0,
      LIMIT_MAX_FRAMEBUFFER_COLOR_ATTACHMENTS = 1,
      LIMIT_MAX_TEXTURES_PER_UNIFORM_SET = 2,
      LIMIT_MAX_SAMPLERS_PER_UNIFORM_SET = 3,
      LIMIT_MAX_STORAGE_BUFFERS_PER_UNIFORM_SET = 4,
      LIMIT_MAX_STORAGE_IMAGES_PER_UNIFORM_SET = 5,
      LIMIT_MAX_UNIFORM_BUFFERS_PER_UNIFORM_SET = 6,
      LIMIT_MAX_DRAW_INDEXED_INDEX = 7,
      LIMIT_MAX_FRAMEBUFFER_HEIGHT = 8,
      LIMIT_MAX_FRAMEBUFFER_WIDTH = 9,
      LIMIT_MAX_TEXTURE_ARRAY_LAYERS = 10,
      LIMIT_MAX_TEXTURE_SIZE_1D = 11,
      LIMIT_MAX_TEXTURE_SIZE_2D = 12,
      LIMIT_MAX_TEXTURE_SIZE_3D = 13,
      LIMIT_MAX_TEXTURE_SIZE_CUBE = 14,
      LIMIT_MAX_TEXTURES_PER_SHADER_STAGE = 15,
      LIMIT_MAX_SAMPLERS_PER_SHADER_STAGE = 16,
      LIMIT_MAX_STORAGE_BUFFERS_PER_SHADER_STAGE = 17,
      LIMIT_MAX_STORAGE_IMAGES_PER_SHADER_STAGE = 18,
      LIMIT_MAX_UNIFORM_BUFFERS_PER_SHADER_STAGE = 19,
      LIMIT_MAX_PUSH_CONSTANT_SIZE = 20,
      LIMIT_MAX_UNIFORM_BUFFER_SIZE = 21,
      LIMIT_MAX_VERTEX_INPUT_ATTRIBUTE_OFFSET = 22,
      LIMIT_MAX_VERTEX_INPUT_ATTRIBUTES = 23,
      LIMIT_MAX_VERTEX_INPUT_BINDINGS = 24,
      LIMIT_MAX_VERTEX_INPUT_BINDING_STRIDE = 25,
      LIMIT_MIN_UNIFORM_BUFFER_OFFSET_ALIGNMENT = 26,
      LIMIT_MAX_COMPUTE_SHARED_MEMORY_SIZE = 27,
      LIMIT_MAX_COMPUTE_WORKGROUP_COUNT_X = 28,
      LIMIT_MAX_COMPUTE_WORKGROUP_COUNT_Y = 29,
      LIMIT_MAX_COMPUTE_WORKGROUP_COUNT_Z = 30,
      LIMIT_MAX_COMPUTE_WORKGROUP_INVOCATIONS = 31,
      LIMIT_MAX_COMPUTE_WORKGROUP_SIZE_X = 32,
      LIMIT_MAX_COMPUTE_WORKGROUP_SIZE_Y = 33,
      LIMIT_MAX_COMPUTE_WORKGROUP_SIZE_Z = 34,
      LIMIT_MAX_VIEWPORT_DIMENSIONS_X = 35,
      LIMIT_MAX_VIEWPORT_DIMENSIONS_Y = 36,
    }

    enum LogicOperation {
      LOGIC_OP_CLEAR = 0,
      LOGIC_OP_AND = 1,
      LOGIC_OP_AND_REVERSE = 2,
      LOGIC_OP_COPY = 3,
      LOGIC_OP_AND_INVERTED = 4,
      LOGIC_OP_NO_OP = 5,
      LOGIC_OP_XOR = 6,
      LOGIC_OP_OR = 7,
      LOGIC_OP_NOR = 8,
      LOGIC_OP_EQUIVALENT = 9,
      LOGIC_OP_INVERT = 10,
      LOGIC_OP_OR_REVERSE = 11,
      LOGIC_OP_COPY_INVERTED = 12,
      LOGIC_OP_OR_INVERTED = 13,
      LOGIC_OP_NAND = 14,
      LOGIC_OP_SET = 15,
      LOGIC_OP_MAX = 16,
    }

    enum MemoryType {
      MEMORY_TEXTURES = 0,
      MEMORY_BUFFERS = 1,
      MEMORY_TOTAL = 2,
    }

    enum PipelineDynamicStateFlags {
      DYNAMIC_STATE_LINE_WIDTH = 1,
      DYNAMIC_STATE_DEPTH_BIAS = 2,
      DYNAMIC_STATE_BLEND_CONSTANTS = 4,
      DYNAMIC_STATE_DEPTH_BOUNDS = 8,
      DYNAMIC_STATE_STENCIL_COMPARE_MASK = 16,
      DYNAMIC_STATE_STENCIL_WRITE_MASK = 32,
      DYNAMIC_STATE_STENCIL_REFERENCE = 64,
    }

    enum PipelineSpecializationConstantType {
      PIPELINE_SPECIALIZATION_CONSTANT_TYPE_BOOL = 0,
      PIPELINE_SPECIALIZATION_CONSTANT_TYPE_INT = 1,
      PIPELINE_SPECIALIZATION_CONSTANT_TYPE_FLOAT = 2,
    }

    enum PolygonCullMode {
      POLYGON_CULL_DISABLED = 0,
      POLYGON_CULL_FRONT = 1,
      POLYGON_CULL_BACK = 2,
    }

    enum PolygonFrontFace {
      POLYGON_FRONT_FACE_CLOCKWISE = 0,
      POLYGON_FRONT_FACE_COUNTER_CLOCKWISE = 1,
    }

    enum RenderPrimitive {
      RENDER_PRIMITIVE_POINTS = 0,
      RENDER_PRIMITIVE_LINES = 1,
      RENDER_PRIMITIVE_LINES_WITH_ADJACENCY = 2,
      RENDER_PRIMITIVE_LINESTRIPS = 3,
      RENDER_PRIMITIVE_LINESTRIPS_WITH_ADJACENCY = 4,
      RENDER_PRIMITIVE_TRIANGLES = 5,
      RENDER_PRIMITIVE_TRIANGLES_WITH_ADJACENCY = 6,
      RENDER_PRIMITIVE_TRIANGLE_STRIPS = 7,
      RENDER_PRIMITIVE_TRIANGLE_STRIPS_WITH_AJACENCY = 8,
      RENDER_PRIMITIVE_TRIANGLE_STRIPS_WITH_RESTART_INDEX = 9,
      RENDER_PRIMITIVE_TESSELATION_PATCH = 10,
      RENDER_PRIMITIVE_MAX = 11,
    }

    enum SamplerBorderColor {
      SAMPLER_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
      SAMPLER_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
      SAMPLER_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
      SAMPLER_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
      SAMPLER_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
      SAMPLER_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
      SAMPLER_BORDER_COLOR_MAX = 6,
    }

    enum SamplerFilter {
      SAMPLER_FILTER_NEAREST = 0,
      SAMPLER_FILTER_LINEAR = 1,
    }

    enum SamplerRepeatMode {
      SAMPLER_REPEAT_MODE_REPEAT = 0,
      SAMPLER_REPEAT_MODE_MIRRORED_REPEAT = 1,
      SAMPLER_REPEAT_MODE_CLAMP_TO_EDGE = 2,
      SAMPLER_REPEAT_MODE_CLAMP_TO_BORDER = 3,
      SAMPLER_REPEAT_MODE_MIRROR_CLAMP_TO_EDGE = 4,
      SAMPLER_REPEAT_MODE_MAX = 5,
    }

    enum ShaderLanguage {
      SHADER_LANGUAGE_GLSL = 0,
      SHADER_LANGUAGE_HLSL = 1,
    }

    enum ShaderStage {
      SHADER_STAGE_VERTEX = 0,
      SHADER_STAGE_FRAGMENT = 1,
      SHADER_STAGE_TESSELATION_CONTROL = 2,
      SHADER_STAGE_TESSELATION_EVALUATION = 3,
      SHADER_STAGE_COMPUTE = 4,
      SHADER_STAGE_MAX = 5,
      SHADER_STAGE_TESSELATION_EVALUATION_BIT = 8,
      SHADER_STAGE_COMPUTE_BIT = 16,
    }

    enum StencilOperation {
      STENCIL_OP_KEEP = 0,
      STENCIL_OP_ZERO = 1,
      STENCIL_OP_REPLACE = 2,
      STENCIL_OP_INCREMENT_AND_CLAMP = 3,
      STENCIL_OP_DECREMENT_AND_CLAMP = 4,
      STENCIL_OP_INVERT = 5,
      STENCIL_OP_INCREMENT_AND_WRAP = 6,
      STENCIL_OP_DECREMENT_AND_WRAP = 7,
      STENCIL_OP_MAX = 8,
    }

    enum StorageBufferUsage {
      STORAGE_BUFFER_USAGE_DISPATCH_INDIRECT = 1,
    }

    enum TextureSamples {
      TEXTURE_SAMPLES_1 = 0,
      TEXTURE_SAMPLES_2 = 1,
      TEXTURE_SAMPLES_4 = 2,
      TEXTURE_SAMPLES_8 = 3,
      TEXTURE_SAMPLES_16 = 4,
      TEXTURE_SAMPLES_32 = 5,
      TEXTURE_SAMPLES_64 = 6,
      TEXTURE_SAMPLES_MAX = 7,
    }

    enum TextureSliceType {
      TEXTURE_SLICE_2D = 0,
      TEXTURE_SLICE_CUBEMAP = 1,
      TEXTURE_SLICE_3D = 2,
    }

    enum TextureSwizzle {
      TEXTURE_SWIZZLE_IDENTITY = 0,
      TEXTURE_SWIZZLE_ZERO = 1,
      TEXTURE_SWIZZLE_ONE = 2,
      TEXTURE_SWIZZLE_R = 3,
      TEXTURE_SWIZZLE_G = 4,
      TEXTURE_SWIZZLE_B = 5,
      TEXTURE_SWIZZLE_A = 6,
      TEXTURE_SWIZZLE_MAX = 7,
    }

    enum TextureType {
      TEXTURE_TYPE_1D = 0,
      TEXTURE_TYPE_2D = 1,
      TEXTURE_TYPE_3D = 2,
      TEXTURE_TYPE_CUBE = 3,
      TEXTURE_TYPE_1D_ARRAY = 4,
      TEXTURE_TYPE_2D_ARRAY = 5,
      TEXTURE_TYPE_CUBE_ARRAY = 6,
      TEXTURE_TYPE_MAX = 7,
    }

    enum TextureUsageBits {
      TEXTURE_USAGE_SAMPLING_BIT = 1,
      TEXTURE_USAGE_COLOR_ATTACHMENT_BIT = 2,
      TEXTURE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 4,
      TEXTURE_USAGE_STORAGE_BIT = 8,
      TEXTURE_USAGE_STORAGE_ATOMIC_BIT = 16,
      TEXTURE_USAGE_CPU_READ_BIT = 32,
      TEXTURE_USAGE_CAN_UPDATE_BIT = 64,
      TEXTURE_USAGE_CAN_COPY_FROM_BIT = 128,
      TEXTURE_USAGE_CAN_COPY_TO_BIT = 256,
      TEXTURE_USAGE_INPUT_ATTACHMENT_BIT = 512,
    }

    enum UniformType {
      UNIFORM_TYPE_SAMPLER = 0,
      UNIFORM_TYPE_SAMPLER_WITH_TEXTURE = 1,
      UNIFORM_TYPE_TEXTURE = 2,
      UNIFORM_TYPE_IMAGE = 3,
      UNIFORM_TYPE_TEXTURE_BUFFER = 4,
      UNIFORM_TYPE_SAMPLER_WITH_TEXTURE_BUFFER = 5,
      UNIFORM_TYPE_IMAGE_BUFFER = 6,
      UNIFORM_TYPE_UNIFORM_BUFFER = 7,
      UNIFORM_TYPE_STORAGE_BUFFER = 8,
      UNIFORM_TYPE_INPUT_ATTACHMENT = 9,
      UNIFORM_TYPE_MAX = 10,
    }

    enum VertexFrequency {
      VERTEX_FREQUENCY_VERTEX = 0,
      VERTEX_FREQUENCY_INSTANCE = 1,
    }

    func barrier(from: enum BarrierMask = BARRIER_MASK_ALL_BARRIERS, to: enum BarrierMask = BARRIER_MASK_ALL_BARRIERS)
    func buffer_clear(buffer: RID, offset: int, size_bytes: int, post_barrier: enum BarrierMask = BARRIER_MASK_ALL_BARRIERS) -> enum Error
    func buffer_get_data(buffer: RID, offset_bytes: int = 0, size_bytes: int = 0) -> PackedByteArray
    func buffer_update(buffer: RID, offset: int, size_bytes: int, data: PackedByteArray, post_barrier: enum BarrierMask = BARRIER_MASK_ALL_BARRIERS) -> enum Error
    func capture_timestamp(name: String)
    func compute_list_add_barrier(compute_list: int)
    func compute_list_begin(allow_draw_overlap: bool = false) -> int
    func compute_list_bind_compute_pipeline(compute_list: int, compute_pipeline: RID)
    func compute_list_bind_uniform_set(compute_list: int, uniform_set: RID, set_index: int)
    func compute_list_dispatch(compute_list: int, x_groups: int, y_groups: int, z_groups: int)
    func compute_list_end(post_barrier: enum BarrierMask = BARRIER_MASK_ALL_BARRIERS)
    func compute_list_set_push_constant(compute_list: int, buffer: PackedByteArray, size_bytes: int)
    func compute_pipeline_create(shader: RID, specialization_constants: Array[RDPipelineSpecializationConstant] = []) -> RID
    func compute_pipeline_is_valid(compute_pipeline: RID) -> bool
    func create_local_device() -> RenderingDevice
    func draw_command_begin_label(name: String, color: Color)
    func draw_command_end_label()
    func draw_command_insert_label(name: String, color: Color)
    func draw_list_begin(framebuffer: RID, initial_color_action: enum InitialAction, final_color_action: enum FinalAction, initial_depth_action: enum InitialAction, final_depth_action: enum FinalAction, clear_color_values: PackedColorArray = PackedColorArray(), clear_depth: float = 1.0, clear_stencil: int = 0, region: Rect2 = Rect2(0, 0, 0, 0), storage_textures: Array[RID] = []) -> int
    func draw_list_begin_for_screen(screen: int = 0, clear_color: Color = Color(0, 0, 0, 1)) -> int
    func draw_list_begin_split(framebuffer: RID, splits: int, initial_color_action: enum InitialAction, final_color_action: enum FinalAction, initial_depth_action: enum InitialAction, final_depth_action: enum FinalAction, clear_color_values: PackedColorArray = PackedColorArray(), clear_depth: float = 1.0, clear_stencil: int = 0, region: Rect2 = Rect2(0, 0, 0, 0), storage_textures: Array[RID] = []) -> PackedInt64Array
    func draw_list_bind_index_array(draw_list: int, index_array: RID)
    func draw_list_bind_render_pipeline(draw_list: int, render_pipeline: RID)
    func draw_list_bind_uniform_set(draw_list: int, uniform_set: RID, set_index: int)
    func draw_list_bind_vertex_array(draw_list: int, vertex_array: RID)
    func draw_list_disable_scissor(draw_list: int)
    func draw_list_draw(draw_list: int, use_indices: bool, instances: int, procedural_vertex_count: int = 0)
    func draw_list_enable_scissor(draw_list: int, rect: Rect2 = Rect2(0, 0, 0, 0))
    func draw_list_end(post_barrier: enum BarrierMask = BARRIER_MASK_ALL_BARRIERS)
    func draw_list_set_blend_constants(draw_list: int, color: Color)
    func draw_list_set_push_constant(draw_list: int, buffer: PackedByteArray, size_bytes: int)
    func draw_list_switch_to_next_pass() -> int
    func draw_list_switch_to_next_pass_split(splits: int) -> PackedInt64Array
    func framebuffer_create(textures: Array[RID], validate_with_format: int = -1, view_count: int = 1) -> RID
    func framebuffer_create_empty(size: Vector2i, samples: enum TextureSamples = TEXTURE_SAMPLES_1, validate_with_format: int = -1) -> RID
    func framebuffer_create_multipass(textures: Array[RID], passes: Array[RDFramebufferPass], validate_with_format: int = -1, view_count: int = 1) -> RID
    func framebuffer_format_create(attachments: Array[RDAttachmentFormat], view_count: int = 1) -> int
    func framebuffer_format_create_empty(samples: enum TextureSamples = TEXTURE_SAMPLES_1) -> int
    func framebuffer_format_create_multipass(attachments: Array[RDAttachmentFormat], passes: Array[RDFramebufferPass], view_count: int = 1) -> int
    func framebuffer_format_get_texture_samples(format: int, render_pass: int = 0) -> enum TextureSamples
    func framebuffer_get_format(framebuffer: RID) -> int
    func framebuffer_is_valid(framebuffer: RID) -> bool
    func free_rid(rid: RID)
    func full_barrier()
    func get_captured_timestamp_cpu_time(index: int) -> int
    func get_captured_timestamp_gpu_time(index: int) -> int
    func get_captured_timestamp_name(index: int) -> String
    func get_captured_timestamps_count() -> int
    func get_captured_timestamps_frame() -> int
    func get_device_name() -> String
    func get_device_pipeline_cache_uuid() -> String
    func get_device_vendor_name() -> String
    func get_driver_resource(resource: enum DriverResource, rid: RID, index: int) -> int
    func get_frame_delay() -> int
    func get_memory_usage(type: enum MemoryType) -> int
    func index_array_create(index_buffer: RID, index_offset: int, index_count: int) -> RID
    func index_buffer_create(size_indices: int, format: enum IndexBufferFormat, data: PackedByteArray = PackedByteArray(), use_restart_indices: bool = false) -> RID
    func limit_get(limit: enum Limit) -> int
    func render_pipeline_create(shader: RID, framebuffer_format: int, vertex_format: int, primitive: enum RenderPrimitive, rasterization_state: RDPipelineRasterizationState, multisample_state: RDPipelineMultisampleState, stencil_state: RDPipelineDepthStencilState, color_blend_state: RDPipelineColorBlendState, dynamic_state_flags: enum PipelineDynamicStateFlags = 0, for_render_pass: int = 0, specialization_constants: Array[RDPipelineSpecializationConstant] = []) -> RID
    func render_pipeline_is_valid(render_pipeline: RID) -> bool
    func sampler_create(state: RDSamplerState) -> RID
    func sampler_is_format_supported_for_filter(format: enum DataFormat, sampler_filter: enum SamplerFilter) -> bool
    func screen_get_framebuffer_format() -> int
    func screen_get_height(screen: int = 0) -> int
    func screen_get_width(screen: int = 0) -> int
    func set_resource_name(id: RID, name: String)
    func shader_compile_binary_from_spirv(spirv_data: RDShaderSPIRV, name: String = "") -> PackedByteArray
    func shader_compile_spirv_from_source(shader_source: RDShaderSource, allow_cache: bool = true) -> RDShaderSPIRV
    func shader_create_from_bytecode(binary_data: PackedByteArray, placeholder_rid: RID = RID()) -> RID
    func shader_create_from_spirv(spirv_data: RDShaderSPIRV, name: String = "") -> RID
    func shader_create_placeholder() -> RID
    func shader_get_vertex_input_attribute_mask(shader: RID) -> int
    func storage_buffer_create(size_bytes: int, data: PackedByteArray = PackedByteArray(), usage: enum StorageBufferUsage = 0) -> RID
    func submit()
    func sync()
    func texture_buffer_create(size_bytes: int, format: enum DataFormat, data: PackedByteArray = PackedByteArray()) -> RID
    func texture_clear(texture: RID, color: Color, base_mipmap: int, mipmap_count: int, base_layer: int, layer_count: int, post_barrier: enum BarrierMask = BARRIER_MASK_ALL_BARRIERS) -> enum Error
    func texture_copy(from_texture: RID, to_texture: RID, from_pos: Vector3, to_pos: Vector3, size: Vector3, src_mipmap: int, dst_mipmap: int, src_layer: int, dst_layer: int, post_barrier: enum BarrierMask = BARRIER_MASK_ALL_BARRIERS) -> enum Error
    func texture_create(format: RDTextureFormat, view: RDTextureView, data: Array[PackedByteArray] = []) -> RID
    func texture_create_from_extension(type: enum TextureType, format: enum DataFormat, samples: enum TextureSamples, usage_flags: enum TextureUsageBits, image: int, width: int, height: int, depth: int, layers: int) -> RID
    func texture_create_shared(view: RDTextureView, with_texture: RID) -> RID
    func texture_create_shared_from_slice(view: RDTextureView, with_texture: RID, layer: int, mipmap: int, mipmaps: int = 1, slice_type: enum TextureSliceType = TEXTURE_SLICE_2D) -> RID
    func texture_get_data(texture: RID, layer: int) -> PackedByteArray
    func texture_get_format(texture: RID) -> RDTextureFormat
    func texture_get_native_handle(texture: RID) -> int
    func texture_is_format_supported_for_usage(format: enum DataFormat, usage_flags: enum TextureUsageBits) -> bool
    func texture_is_shared(texture: RID) -> bool
    func texture_is_valid(texture: RID) -> bool
    func texture_resolve_multisample(from_texture: RID, to_texture: RID, post_barrier: enum BarrierMask = BARRIER_MASK_ALL_BARRIERS) -> enum Error
    func texture_update(texture: RID, layer: int, data: PackedByteArray, post_barrier: enum BarrierMask = BARRIER_MASK_ALL_BARRIERS) -> enum Error
    func uniform_buffer_create(size_bytes: int, data: PackedByteArray = PackedByteArray()) -> RID
    func uniform_set_create(uniforms: Array[RDUniform], shader: RID, shader_set: int) -> RID
    func uniform_set_is_valid(uniform_set: RID) -> bool
    func vertex_array_create(vertex_count: int, vertex_format: int, src_buffers: Array[RID], offsets: PackedInt64Array = PackedInt64Array()) -> RID
    func vertex_buffer_create(size_bytes: int, data: PackedByteArray = PackedByteArray(), use_as_storage: bool = false) -> RID
    func vertex_format_create(vertex_descriptions: Array[RDVertexAttribute]) -> int

# Object < RenderingServer (singleton)

  class RenderingServer extends Object:

    const ARRAY_CUSTOM_COUNT = 4
    const ARRAY_WEIGHTS_SIZE = 4
    const CANVAS_ITEM_Z_MAX = 4096
    const CANVAS_ITEM_Z_MIN = -4096
    const MATERIAL_RENDER_PRIORITY_MAX = 127
    const MATERIAL_RENDER_PRIORITY_MIN = -128
    const MAX_2D_DIRECTIONAL_LIGHTS = 8
    const MAX_CURSORS = 8
    const MAX_GLOW_LEVELS = 7
    const NO_INDEX_ARRAY = -1
    const PARTICLES_EMIT_FLAG_COLOR = 8
    const PARTICLES_EMIT_FLAG_CUSTOM = 16
    const PARTICLES_EMIT_FLAG_POSITION = 1
    const PARTICLES_EMIT_FLAG_ROTATION_SCALE = 2
    const PARTICLES_EMIT_FLAG_VELOCITY = 4

    enum ArrayCustomFormat {
      ARRAY_CUSTOM_RGBA8_UNORM = 0,
      ARRAY_CUSTOM_RGBA8_SNORM = 1,
      ARRAY_CUSTOM_RG_HALF = 2,
      ARRAY_CUSTOM_RGBA_HALF = 3,
      ARRAY_CUSTOM_R_FLOAT = 4,
      ARRAY_CUSTOM_RG_FLOAT = 5,
      ARRAY_CUSTOM_RGB_FLOAT = 6,
      ARRAY_CUSTOM_RGBA_FLOAT = 7,
      ARRAY_CUSTOM_MAX = 8,
    }

    enum ArrayFormat {
      ARRAY_FLAG_FORMAT_VERSION_1 = 0,
      ARRAY_FORMAT_VERTEX = 1,
      ARRAY_FORMAT_NORMAL = 2,
      ARRAY_FORMAT_CUSTOM_BITS = 3,
      ARRAY_FORMAT_TANGENT = 4,
      ARRAY_FORMAT_BLEND_SHAPE_MASK = 7,
      ARRAY_FORMAT_COLOR = 8,
      ARRAY_FORMAT_CUSTOM_BASE = 13,
      ARRAY_FORMAT_TEX_UV = 16,
      ARRAY_FORMAT_CUSTOM2_SHIFT = 19,
      ARRAY_FORMAT_CUSTOM3_SHIFT = 22,
      ARRAY_COMPRESS_FLAGS_BASE = 25,
      ARRAY_FORMAT_TEX_UV2 = 32,
      ARRAY_FLAG_FORMAT_VERSION_BASE = 35,
      ARRAY_FORMAT_CUSTOM0 = 64,
      ARRAY_FORMAT_CUSTOM1 = 128,
      ARRAY_FLAG_FORMAT_VERSION_MASK = 255,
      ARRAY_FORMAT_CUSTOM2 = 256,
      ARRAY_FORMAT_CUSTOM3 = 512,
      ARRAY_FORMAT_BONES = 1024,
      ARRAY_FORMAT_WEIGHTS = 2048,
      ARRAY_FORMAT_INDEX = 4096,
      ARRAY_FLAG_USE_2D_VERTICES = 33554432,
      ARRAY_FLAG_USE_DYNAMIC_UPDATE = 67108864,
      ARRAY_FLAG_USE_8_BONE_WEIGHTS = 134217728,
      ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY = 268435456,
      ARRAY_FLAG_COMPRESS_ATTRIBUTES = 536870912,
      ARRAY_FLAG_FORMAT_VERSION_2 = 34359738368,
    }

    enum ArrayType {
      ARRAY_VERTEX = 0,
      ARRAY_NORMAL = 1,
      ARRAY_TANGENT = 2,
      ARRAY_COLOR = 3,
      ARRAY_TEX_UV = 4,
      ARRAY_TEX_UV2 = 5,
      ARRAY_CUSTOM0 = 6,
      ARRAY_CUSTOM1 = 7,
      ARRAY_CUSTOM2 = 8,
      ARRAY_CUSTOM3 = 9,
      ARRAY_BONES = 10,
      ARRAY_WEIGHTS = 11,
      ARRAY_INDEX = 12,
      ARRAY_MAX = 13,
    }

    enum BakeChannels {
      BAKE_CHANNEL_ALBEDO_ALPHA = 0,
      BAKE_CHANNEL_NORMAL = 1,
      BAKE_CHANNEL_ORM = 2,
      BAKE_CHANNEL_EMISSION = 3,
    }

    enum BlendShapeMode {
      BLEND_SHAPE_MODE_NORMALIZED = 0,
      BLEND_SHAPE_MODE_RELATIVE = 1,
    }

    enum CanvasGroupMode {
      CANVAS_GROUP_MODE_DISABLED = 0,
      CANVAS_GROUP_MODE_CLIP_ONLY = 1,
      CANVAS_GROUP_MODE_CLIP_AND_DRAW = 2,
      CANVAS_GROUP_MODE_TRANSPARENT = 3,
    }

    enum CanvasItemTextureFilter {
      CANVAS_ITEM_TEXTURE_FILTER_DEFAULT = 0,
      CANVAS_ITEM_TEXTURE_FILTER_NEAREST = 1,
      CANVAS_ITEM_TEXTURE_FILTER_LINEAR = 2,
      CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS = 3,
      CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS = 4,
      CANVAS_ITEM_TEXTURE_FILTER_NEAREST_WITH_MIPMAPS_ANISOTROPIC = 5,
      CANVAS_ITEM_TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC = 6,
      CANVAS_ITEM_TEXTURE_FILTER_MAX = 7,
    }

    enum CanvasItemTextureRepeat {
      CANVAS_ITEM_TEXTURE_REPEAT_DEFAULT = 0,
      CANVAS_ITEM_TEXTURE_REPEAT_DISABLED = 1,
      CANVAS_ITEM_TEXTURE_REPEAT_ENABLED = 2,
      CANVAS_ITEM_TEXTURE_REPEAT_MIRROR = 3,
      CANVAS_ITEM_TEXTURE_REPEAT_MAX = 4,
    }

    enum CanvasLightBlendMode {
      CANVAS_LIGHT_BLEND_MODE_ADD = 0,
      CANVAS_LIGHT_BLEND_MODE_SUB = 1,
      CANVAS_LIGHT_BLEND_MODE_MIX = 2,
    }

    enum CanvasLightMode {
      CANVAS_LIGHT_MODE_POINT = 0,
      CANVAS_LIGHT_MODE_DIRECTIONAL = 1,
    }

    enum CanvasLightShadowFilter {
      CANVAS_LIGHT_FILTER_NONE = 0,
      CANVAS_LIGHT_FILTER_PCF5 = 1,
      CANVAS_LIGHT_FILTER_PCF13 = 2,
      CANVAS_LIGHT_FILTER_MAX = 3,
    }

    enum CanvasOccluderPolygonCullMode {
      CANVAS_OCCLUDER_POLYGON_CULL_DISABLED = 0,
      CANVAS_OCCLUDER_POLYGON_CULL_CLOCKWISE = 1,
      CANVAS_OCCLUDER_POLYGON_CULL_COUNTER_CLOCKWISE = 2,
    }

    enum CanvasTextureChannel {
      CANVAS_TEXTURE_CHANNEL_DIFFUSE = 0,
      CANVAS_TEXTURE_CHANNEL_NORMAL = 1,
      CANVAS_TEXTURE_CHANNEL_SPECULAR = 2,
    }

    enum CubeMapLayer {
      CUBEMAP_LAYER_LEFT = 0,
      CUBEMAP_LAYER_RIGHT = 1,
      CUBEMAP_LAYER_BOTTOM = 2,
      CUBEMAP_LAYER_TOP = 3,
      CUBEMAP_LAYER_FRONT = 4,
      CUBEMAP_LAYER_BACK = 5,
    }

    enum DecalFilter {
      DECAL_FILTER_NEAREST = 0,
      DECAL_FILTER_LINEAR = 1,
      DECAL_FILTER_NEAREST_MIPMAPS = 2,
      DECAL_FILTER_LINEAR_MIPMAPS = 3,
      DECAL_FILTER_NEAREST_MIPMAPS_ANISOTROPIC = 4,
      DECAL_FILTER_LINEAR_MIPMAPS_ANISOTROPIC = 5,
    }

    enum DecalTexture {
      DECAL_TEXTURE_ALBEDO = 0,
      DECAL_TEXTURE_NORMAL = 1,
      DECAL_TEXTURE_ORM = 2,
      DECAL_TEXTURE_EMISSION = 3,
      DECAL_TEXTURE_MAX = 4,
    }

    enum DOFBlurQuality {
      DOF_BLUR_QUALITY_VERY_LOW = 0,
      DOF_BLUR_QUALITY_LOW = 1,
      DOF_BLUR_QUALITY_MEDIUM = 2,
      DOF_BLUR_QUALITY_HIGH = 3,
    }

    enum DOFBokehShape {
      DOF_BOKEH_BOX = 0,
      DOF_BOKEH_HEXAGON = 1,
      DOF_BOKEH_CIRCLE = 2,
    }

    enum EnvironmentAmbientSource {
      ENV_AMBIENT_SOURCE_BG = 0,
      ENV_AMBIENT_SOURCE_DISABLED = 1,
      ENV_AMBIENT_SOURCE_COLOR = 2,
      ENV_AMBIENT_SOURCE_SKY = 3,
    }

    enum EnvironmentBG {
      ENV_BG_CLEAR_COLOR = 0,
      ENV_BG_COLOR = 1,
      ENV_BG_SKY = 2,
      ENV_BG_CANVAS = 3,
      ENV_BG_KEEP = 4,
      ENV_BG_CAMERA_FEED = 5,
      ENV_BG_MAX = 6,
    }

    enum EnvironmentGlowBlendMode {
      ENV_GLOW_BLEND_MODE_ADDITIVE = 0,
      ENV_GLOW_BLEND_MODE_SCREEN = 1,
      ENV_GLOW_BLEND_MODE_SOFTLIGHT = 2,
      ENV_GLOW_BLEND_MODE_REPLACE = 3,
      ENV_GLOW_BLEND_MODE_MIX = 4,
    }

    enum EnvironmentReflectionSource {
      ENV_REFLECTION_SOURCE_BG = 0,
      ENV_REFLECTION_SOURCE_DISABLED = 1,
      ENV_REFLECTION_SOURCE_SKY = 2,
    }

    enum EnvironmentSDFGIFramesToConverge {
      ENV_SDFGI_CONVERGE_IN_5_FRAMES = 0,
      ENV_SDFGI_CONVERGE_IN_10_FRAMES = 1,
      ENV_SDFGI_CONVERGE_IN_15_FRAMES = 2,
      ENV_SDFGI_CONVERGE_IN_20_FRAMES = 3,
      ENV_SDFGI_CONVERGE_IN_25_FRAMES = 4,
      ENV_SDFGI_CONVERGE_IN_30_FRAMES = 5,
      ENV_SDFGI_CONVERGE_MAX = 6,
    }

    enum EnvironmentSDFGIFramesToUpdateLight {
      ENV_SDFGI_UPDATE_LIGHT_IN_1_FRAME = 0,
      ENV_SDFGI_UPDATE_LIGHT_IN_2_FRAMES = 1,
      ENV_SDFGI_UPDATE_LIGHT_IN_4_FRAMES = 2,
      ENV_SDFGI_UPDATE_LIGHT_IN_8_FRAMES = 3,
      ENV_SDFGI_UPDATE_LIGHT_IN_16_FRAMES = 4,
      ENV_SDFGI_UPDATE_LIGHT_MAX = 5,
    }

    enum EnvironmentSDFGIRayCount {
      ENV_SDFGI_RAY_COUNT_4 = 0,
      ENV_SDFGI_RAY_COUNT_8 = 1,
      ENV_SDFGI_RAY_COUNT_16 = 2,
      ENV_SDFGI_RAY_COUNT_32 = 3,
      ENV_SDFGI_RAY_COUNT_64 = 4,
      ENV_SDFGI_RAY_COUNT_96 = 5,
      ENV_SDFGI_RAY_COUNT_128 = 6,
      ENV_SDFGI_RAY_COUNT_MAX = 7,
    }

    enum EnvironmentSDFGIYScale {
      ENV_SDFGI_Y_SCALE_50_PERCENT = 0,
      ENV_SDFGI_Y_SCALE_75_PERCENT = 1,
      ENV_SDFGI_Y_SCALE_100_PERCENT = 2,
    }

    enum EnvironmentSSAOQuality {
      ENV_SSAO_QUALITY_VERY_LOW = 0,
      ENV_SSAO_QUALITY_LOW = 1,
      ENV_SSAO_QUALITY_MEDIUM = 2,
      ENV_SSAO_QUALITY_HIGH = 3,
      ENV_SSAO_QUALITY_ULTRA = 4,
    }

    enum EnvironmentSSILQuality {
      ENV_SSIL_QUALITY_VERY_LOW = 0,
      ENV_SSIL_QUALITY_LOW = 1,
      ENV_SSIL_QUALITY_MEDIUM = 2,
      ENV_SSIL_QUALITY_HIGH = 3,
      ENV_SSIL_QUALITY_ULTRA = 4,
    }

    enum EnvironmentSSRRoughnessQuality {
      ENV_SSR_ROUGHNESS_QUALITY_DISABLED = 0,
      ENV_SSR_ROUGHNESS_QUALITY_LOW = 1,
      ENV_SSR_ROUGHNESS_QUALITY_MEDIUM = 2,
      ENV_SSR_ROUGHNESS_QUALITY_HIGH = 3,
    }

    enum EnvironmentToneMapper {
      ENV_TONE_MAPPER_LINEAR = 0,
      ENV_TONE_MAPPER_REINHARD = 1,
      ENV_TONE_MAPPER_FILMIC = 2,
      ENV_TONE_MAPPER_ACES = 3,
    }

    enum Features {
      FEATURE_SHADERS = 0,
      FEATURE_MULTITHREADED = 1,
    }

    enum FogVolumeShape {
      FOG_VOLUME_SHAPE_ELLIPSOID = 0,
      FOG_VOLUME_SHAPE_CONE = 1,
      FOG_VOLUME_SHAPE_CYLINDER = 2,
      FOG_VOLUME_SHAPE_BOX = 3,
      FOG_VOLUME_SHAPE_WORLD = 4,
      FOG_VOLUME_SHAPE_MAX = 5,
    }

    enum GlobalShaderParameterType {
      GLOBAL_VAR_TYPE_BOOL = 0,
      GLOBAL_VAR_TYPE_BVEC2 = 1,
      GLOBAL_VAR_TYPE_BVEC3 = 2,
      GLOBAL_VAR_TYPE_BVEC4 = 3,
      GLOBAL_VAR_TYPE_INT = 4,
      GLOBAL_VAR_TYPE_IVEC2 = 5,
      GLOBAL_VAR_TYPE_IVEC3 = 6,
      GLOBAL_VAR_TYPE_IVEC4 = 7,
      GLOBAL_VAR_TYPE_RECT2I = 8,
      GLOBAL_VAR_TYPE_UINT = 9,
      GLOBAL_VAR_TYPE_UVEC2 = 10,
      GLOBAL_VAR_TYPE_UVEC3 = 11,
      GLOBAL_VAR_TYPE_UVEC4 = 12,
      GLOBAL_VAR_TYPE_FLOAT = 13,
      GLOBAL_VAR_TYPE_VEC2 = 14,
      GLOBAL_VAR_TYPE_VEC3 = 15,
      GLOBAL_VAR_TYPE_VEC4 = 16,
      GLOBAL_VAR_TYPE_COLOR = 17,
      GLOBAL_VAR_TYPE_RECT2 = 18,
      GLOBAL_VAR_TYPE_MAT2 = 19,
      GLOBAL_VAR_TYPE_MAT3 = 20,
      GLOBAL_VAR_TYPE_MAT4 = 21,
      GLOBAL_VAR_TYPE_TRANSFORM_2D = 22,
      GLOBAL_VAR_TYPE_TRANSFORM = 23,
      GLOBAL_VAR_TYPE_SAMPLER2D = 24,
      GLOBAL_VAR_TYPE_SAMPLER2DARRAY = 25,
      GLOBAL_VAR_TYPE_SAMPLER3D = 26,
      GLOBAL_VAR_TYPE_SAMPLERCUBE = 27,
      GLOBAL_VAR_TYPE_MAX = 28,
    }

    enum InstanceFlags {
      INSTANCE_FLAG_USE_BAKED_LIGHT = 0,
      INSTANCE_FLAG_USE_DYNAMIC_GI = 1,
      INSTANCE_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE = 2,
      INSTANCE_FLAG_IGNORE_OCCLUSION_CULLING = 3,
      INSTANCE_FLAG_MAX = 4,
    }

    enum InstanceType {
      INSTANCE_NONE = 0,
      INSTANCE_MESH = 1,
      INSTANCE_MULTIMESH = 2,
      INSTANCE_PARTICLES = 3,
      INSTANCE_PARTICLES_COLLISION = 4,
      INSTANCE_LIGHT = 5,
      INSTANCE_REFLECTION_PROBE = 6,
      INSTANCE_DECAL = 7,
      INSTANCE_VOXEL_GI = 8,
      INSTANCE_LIGHTMAP = 9,
      INSTANCE_OCCLUDER = 10,
      INSTANCE_VISIBLITY_NOTIFIER = 11,
      INSTANCE_FOG_VOLUME = 12,
      INSTANCE_MAX = 13,
      INSTANCE_GEOMETRY_MASK = 14,
    }

    enum LightBakeMode {
      LIGHT_BAKE_DISABLED = 0,
      LIGHT_BAKE_STATIC = 1,
      LIGHT_BAKE_DYNAMIC = 2,
    }

    enum LightDirectionalShadowMode {
      LIGHT_DIRECTIONAL_SHADOW_ORTHOGONAL = 0,
      LIGHT_DIRECTIONAL_SHADOW_PARALLEL_2_SPLITS = 1,
      LIGHT_DIRECTIONAL_SHADOW_PARALLEL_4_SPLITS = 2,
    }

    enum LightDirectionalSkyMode {
      LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_AND_SKY = 0,
      LIGHT_DIRECTIONAL_SKY_MODE_LIGHT_ONLY = 1,
      LIGHT_DIRECTIONAL_SKY_MODE_SKY_ONLY = 2,
    }

    enum LightOmniShadowMode {
      LIGHT_OMNI_SHADOW_DUAL_PARABOLOID = 0,
      LIGHT_OMNI_SHADOW_CUBE = 1,
    }

    enum LightParam {
      LIGHT_PARAM_ENERGY = 0,
      LIGHT_PARAM_INDIRECT_ENERGY = 1,
      LIGHT_PARAM_VOLUMETRIC_FOG_ENERGY = 2,
      LIGHT_PARAM_SPECULAR = 3,
      LIGHT_PARAM_RANGE = 4,
      LIGHT_PARAM_SIZE = 5,
      LIGHT_PARAM_ATTENUATION = 6,
      LIGHT_PARAM_SPOT_ANGLE = 7,
      LIGHT_PARAM_SPOT_ATTENUATION = 8,
      LIGHT_PARAM_SHADOW_MAX_DISTANCE = 9,
      LIGHT_PARAM_SHADOW_SPLIT_1_OFFSET = 10,
      LIGHT_PARAM_SHADOW_SPLIT_2_OFFSET = 11,
      LIGHT_PARAM_SHADOW_SPLIT_3_OFFSET = 12,
      LIGHT_PARAM_SHADOW_FADE_START = 13,
      LIGHT_PARAM_SHADOW_NORMAL_BIAS = 14,
      LIGHT_PARAM_SHADOW_BIAS = 15,
      LIGHT_PARAM_SHADOW_PANCAKE_SIZE = 16,
      LIGHT_PARAM_SHADOW_OPACITY = 17,
      LIGHT_PARAM_SHADOW_BLUR = 18,
      LIGHT_PARAM_TRANSMITTANCE_BIAS = 19,
      LIGHT_PARAM_INTENSITY = 20,
      LIGHT_PARAM_MAX = 21,
    }

    enum LightProjectorFilter {
      LIGHT_PROJECTOR_FILTER_NEAREST = 0,
      LIGHT_PROJECTOR_FILTER_LINEAR = 1,
      LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS = 2,
      LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS = 3,
      LIGHT_PROJECTOR_FILTER_NEAREST_MIPMAPS_ANISOTROPIC = 4,
      LIGHT_PROJECTOR_FILTER_LINEAR_MIPMAPS_ANISOTROPIC = 5,
    }

    enum LightType {
      LIGHT_DIRECTIONAL = 0,
      LIGHT_OMNI = 1,
      LIGHT_SPOT = 2,
    }

    enum MultimeshTransformFormat {
      MULTIMESH_TRANSFORM_2D = 0,
      MULTIMESH_TRANSFORM_3D = 1,
    }

    enum NinePatchAxisMode {
      NINE_PATCH_STRETCH = 0,
      NINE_PATCH_TILE = 1,
      NINE_PATCH_TILE_FIT = 2,
    }

    enum ParticlesCollisionHeightfieldResolution {
      PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_256 = 0,
      PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_512 = 1,
      PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_1024 = 2,
      PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_2048 = 3,
      PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_4096 = 4,
      PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_8192 = 5,
      PARTICLES_COLLISION_HEIGHTFIELD_RESOLUTION_MAX = 6,
    }

    enum ParticlesCollisionType {
      PARTICLES_COLLISION_TYPE_SPHERE_ATTRACT = 0,
      PARTICLES_COLLISION_TYPE_BOX_ATTRACT = 1,
      PARTICLES_COLLISION_TYPE_VECTOR_FIELD_ATTRACT = 2,
      PARTICLES_COLLISION_TYPE_SPHERE_COLLIDE = 3,
      PARTICLES_COLLISION_TYPE_BOX_COLLIDE = 4,
      PARTICLES_COLLISION_TYPE_SDF_COLLIDE = 5,
      PARTICLES_COLLISION_TYPE_HEIGHTFIELD_COLLIDE = 6,
    }

    enum ParticlesDrawOrder {
      PARTICLES_DRAW_ORDER_INDEX = 0,
      PARTICLES_DRAW_ORDER_LIFETIME = 1,
      PARTICLES_DRAW_ORDER_REVERSE_LIFETIME = 2,
      PARTICLES_DRAW_ORDER_VIEW_DEPTH = 3,
    }

    enum ParticlesMode {
      PARTICLES_MODE_2D = 0,
      PARTICLES_MODE_3D = 1,
    }

    enum ParticlesTransformAlign {
      PARTICLES_TRANSFORM_ALIGN_DISABLED = 0,
      PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD = 1,
      PARTICLES_TRANSFORM_ALIGN_Y_TO_VELOCITY = 2,
      PARTICLES_TRANSFORM_ALIGN_Z_BILLBOARD_Y_TO_VELOCITY = 3,
    }

    enum PrimitiveType {
      PRIMITIVE_POINTS = 0,
      PRIMITIVE_LINES = 1,
      PRIMITIVE_LINE_STRIP = 2,
      PRIMITIVE_TRIANGLES = 3,
      PRIMITIVE_TRIANGLE_STRIP = 4,
      PRIMITIVE_MAX = 5,
    }

    enum ReflectionProbeAmbientMode {
      REFLECTION_PROBE_AMBIENT_DISABLED = 0,
      REFLECTION_PROBE_AMBIENT_ENVIRONMENT = 1,
      REFLECTION_PROBE_AMBIENT_COLOR = 2,
    }

    enum ReflectionProbeUpdateMode {
      REFLECTION_PROBE_UPDATE_ONCE = 0,
      REFLECTION_PROBE_UPDATE_ALWAYS = 1,
    }

    enum RenderingInfo {
      RENDERING_INFO_TOTAL_OBJECTS_IN_FRAME = 0,
      RENDERING_INFO_TOTAL_PRIMITIVES_IN_FRAME = 1,
      RENDERING_INFO_TOTAL_DRAW_CALLS_IN_FRAME = 2,
      RENDERING_INFO_TEXTURE_MEM_USED = 3,
      RENDERING_INFO_BUFFER_MEM_USED = 4,
      RENDERING_INFO_VIDEO_MEM_USED = 5,
    }

    enum ShaderMode {
      SHADER_SPATIAL = 0,
      SHADER_CANVAS_ITEM = 1,
      SHADER_PARTICLES = 2,
      SHADER_SKY = 3,
      SHADER_FOG = 4,
      SHADER_MAX = 5,
    }

    enum ShadowCastingSetting {
      SHADOW_CASTING_SETTING_OFF = 0,
      SHADOW_CASTING_SETTING_ON = 1,
      SHADOW_CASTING_SETTING_DOUBLE_SIDED = 2,
      SHADOW_CASTING_SETTING_SHADOWS_ONLY = 3,
    }

    enum ShadowQuality {
      SHADOW_QUALITY_HARD = 0,
      SHADOW_QUALITY_SOFT_VERY_LOW = 1,
      SHADOW_QUALITY_SOFT_LOW = 2,
      SHADOW_QUALITY_SOFT_MEDIUM = 3,
      SHADOW_QUALITY_SOFT_HIGH = 4,
      SHADOW_QUALITY_SOFT_ULTRA = 5,
      SHADOW_QUALITY_MAX = 6,
    }

    enum SkyMode {
      SKY_MODE_AUTOMATIC = 0,
      SKY_MODE_QUALITY = 1,
      SKY_MODE_INCREMENTAL = 2,
      SKY_MODE_REALTIME = 3,
    }

    enum SubSurfaceScatteringQuality {
      SUB_SURFACE_SCATTERING_QUALITY_DISABLED = 0,
      SUB_SURFACE_SCATTERING_QUALITY_LOW = 1,
      SUB_SURFACE_SCATTERING_QUALITY_MEDIUM = 2,
      SUB_SURFACE_SCATTERING_QUALITY_HIGH = 3,
    }

    enum TextureLayeredType {
      TEXTURE_LAYERED_2D_ARRAY = 0,
      TEXTURE_LAYERED_CUBEMAP = 1,
      TEXTURE_LAYERED_CUBEMAP_ARRAY = 2,
    }

    enum ViewportClearMode {
      VIEWPORT_CLEAR_ALWAYS = 0,
      VIEWPORT_CLEAR_NEVER = 1,
      VIEWPORT_CLEAR_ONLY_NEXT_FRAME = 2,
    }

    enum ViewportDebugDraw {
      VIEWPORT_DEBUG_DRAW_DISABLED = 0,
      VIEWPORT_DEBUG_DRAW_UNSHADED = 1,
      VIEWPORT_DEBUG_DRAW_LIGHTING = 2,
      VIEWPORT_DEBUG_DRAW_OVERDRAW = 3,
      VIEWPORT_DEBUG_DRAW_WIREFRAME = 4,
      VIEWPORT_DEBUG_DRAW_NORMAL_BUFFER = 5,
      VIEWPORT_DEBUG_DRAW_VOXEL_GI_ALBEDO = 6,
      VIEWPORT_DEBUG_DRAW_VOXEL_GI_LIGHTING = 7,
      VIEWPORT_DEBUG_DRAW_VOXEL_GI_EMISSION = 8,
      VIEWPORT_DEBUG_DRAW_SHADOW_ATLAS = 9,
      VIEWPORT_DEBUG_DRAW_DIRECTIONAL_SHADOW_ATLAS = 10,
      VIEWPORT_DEBUG_DRAW_SCENE_LUMINANCE = 11,
      VIEWPORT_DEBUG_DRAW_SSAO = 12,
      VIEWPORT_DEBUG_DRAW_SSIL = 13,
      VIEWPORT_DEBUG_DRAW_PSSM_SPLITS = 14,
      VIEWPORT_DEBUG_DRAW_DECAL_ATLAS = 15,
      VIEWPORT_DEBUG_DRAW_SDFGI = 16,
      VIEWPORT_DEBUG_DRAW_SDFGI_PROBES = 17,
      VIEWPORT_DEBUG_DRAW_GI_BUFFER = 18,
      VIEWPORT_DEBUG_DRAW_DISABLE_LOD = 19,
      VIEWPORT_DEBUG_DRAW_CLUSTER_OMNI_LIGHTS = 20,
      VIEWPORT_DEBUG_DRAW_CLUSTER_SPOT_LIGHTS = 21,
      VIEWPORT_DEBUG_DRAW_CLUSTER_DECALS = 22,
      VIEWPORT_DEBUG_DRAW_CLUSTER_REFLECTION_PROBES = 23,
      VIEWPORT_DEBUG_DRAW_OCCLUDERS = 24,
      VIEWPORT_DEBUG_DRAW_MOTION_VECTORS = 25,
      VIEWPORT_DEBUG_DRAW_INTERNAL_BUFFER = 26,
    }

    enum ViewportEnvironmentMode {
      VIEWPORT_ENVIRONMENT_DISABLED = 0,
      VIEWPORT_ENVIRONMENT_ENABLED = 1,
      VIEWPORT_ENVIRONMENT_INHERIT = 2,
      VIEWPORT_ENVIRONMENT_MAX = 3,
    }

    enum ViewportMSAA {
      VIEWPORT_MSAA_DISABLED = 0,
      VIEWPORT_MSAA_2X = 1,
      VIEWPORT_MSAA_4X = 2,
      VIEWPORT_MSAA_8X = 3,
      VIEWPORT_MSAA_MAX = 4,
    }

    enum ViewportOcclusionCullingBuildQuality {
      VIEWPORT_OCCLUSION_BUILD_QUALITY_LOW = 0,
      VIEWPORT_OCCLUSION_BUILD_QUALITY_MEDIUM = 1,
      VIEWPORT_OCCLUSION_BUILD_QUALITY_HIGH = 2,
    }

    enum ViewportRenderInfo {
      VIEWPORT_RENDER_INFO_OBJECTS_IN_FRAME = 0,
      VIEWPORT_RENDER_INFO_PRIMITIVES_IN_FRAME = 1,
      VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME = 2,
      VIEWPORT_RENDER_INFO_MAX = 3,
    }

    enum ViewportRenderInfoType {
      VIEWPORT_RENDER_INFO_TYPE_VISIBLE = 0,
      VIEWPORT_RENDER_INFO_TYPE_SHADOW = 1,
      VIEWPORT_RENDER_INFO_TYPE_MAX = 2,
    }

    enum ViewportScaling3DMode {
      VIEWPORT_SCALING_3D_MODE_BILINEAR = 0,
      VIEWPORT_SCALING_3D_MODE_FSR = 1,
      VIEWPORT_SCALING_3D_MODE_FSR2 = 2,
      VIEWPORT_SCALING_3D_MODE_MAX = 3,
    }

    enum ViewportScreenSpaceAA {
      VIEWPORT_SCREEN_SPACE_AA_DISABLED = 0,
      VIEWPORT_SCREEN_SPACE_AA_FXAA = 1,
      VIEWPORT_SCREEN_SPACE_AA_MAX = 2,
    }

    enum ViewportSDFOversize {
      VIEWPORT_SDF_OVERSIZE_100_PERCENT = 0,
      VIEWPORT_SDF_OVERSIZE_120_PERCENT = 1,
      VIEWPORT_SDF_OVERSIZE_150_PERCENT = 2,
      VIEWPORT_SDF_OVERSIZE_200_PERCENT = 3,
      VIEWPORT_SDF_OVERSIZE_MAX = 4,
    }

    enum ViewportSDFScale {
      VIEWPORT_SDF_SCALE_100_PERCENT = 0,
      VIEWPORT_SDF_SCALE_50_PERCENT = 1,
      VIEWPORT_SDF_SCALE_25_PERCENT = 2,
      VIEWPORT_SDF_SCALE_MAX = 3,
    }

    enum ViewportUpdateMode {
      VIEWPORT_UPDATE_DISABLED = 0,
      VIEWPORT_UPDATE_ONCE = 1,
      VIEWPORT_UPDATE_WHEN_VISIBLE = 2,
      VIEWPORT_UPDATE_WHEN_PARENT_VISIBLE = 3,
      VIEWPORT_UPDATE_ALWAYS = 4,
    }

    enum ViewportVRSMode {
      VIEWPORT_VRS_DISABLED = 0,
      VIEWPORT_VRS_TEXTURE = 1,
      VIEWPORT_VRS_XR = 2,
      VIEWPORT_VRS_MAX = 3,
    }

    enum VisibilityRangeFadeMode {
      VISIBILITY_RANGE_FADE_DISABLED = 0,
      VISIBILITY_RANGE_FADE_SELF = 1,
      VISIBILITY_RANGE_FADE_DEPENDENCIES = 2,
    }

    enum VoxelGIQuality {
      VOXEL_GI_QUALITY_LOW = 0,
      VOXEL_GI_QUALITY_HIGH = 1,
    }

    var render_loop_enabled: bool

    signal frame_post_draw()
    signal frame_pre_draw()

    func bake_render_uv2(base: RID, material_overrides: Array[RID], image_size: Vector2i) -> Array[Image]
    func call_on_render_thread(callable: Callable)
    func camera_attributes_create() -> RID
    func camera_attributes_set_auto_exposure(camera_attributes: RID, enable: bool, min_sensitivity: float, max_sensitivity: float, speed: float, scale: float)
    func camera_attributes_set_dof_blur(camera_attributes: RID, far_enable: bool, far_distance: float, far_transition: float, near_enable: bool, near_distance: float, near_transition: float, amount: float)
    func camera_attributes_set_dof_blur_bokeh_shape(shape: enum DOFBokehShape)
    func camera_attributes_set_dof_blur_quality(quality: enum DOFBlurQuality, use_jitter: bool)
    func camera_attributes_set_exposure(camera_attributes: RID, multiplier: float, normalization: float)
    func camera_create() -> RID
    func camera_set_camera_attributes(camera: RID, effects: RID)
    func camera_set_cull_mask(camera: RID, layers: int)
    func camera_set_environment(camera: RID, env: RID)
    func camera_set_frustum(camera: RID, size: float, offset: Vector2, z_near: float, z_far: float)
    func camera_set_orthogonal(camera: RID, size: float, z_near: float, z_far: float)
    func camera_set_perspective(camera: RID, fovy_degrees: float, z_near: float, z_far: float)
    func camera_set_transform(camera: RID, transform: Transform3D)
    func camera_set_use_vertical_aspect(camera: RID, enable: bool)
    func canvas_create() -> RID
    func canvas_item_add_animation_slice(item: RID, animation_length: float, slice_begin: float, slice_end: float, offset: float = 0.0)
    func canvas_item_add_circle(item: RID, pos: Vector2, radius: float, color: Color)
    func canvas_item_add_clip_ignore(item: RID, ignore: bool)
    func canvas_item_add_lcd_texture_rect_region(item: RID, rect: Rect2, texture: RID, src_rect: Rect2, modulate: Color)
    func canvas_item_add_line(item: RID, from: Vector2, to: Vector2, color: Color, width: float = -1.0, antialiased: bool = false)
    func canvas_item_add_mesh(item: RID, mesh: RID, transform: Transform2D = Transform2D(Vector2(1, 0), Vector2(0, 1), Vector2(0, 0)), modulate: Color = Color(1, 1, 1, 1), texture: RID = RID())
    func canvas_item_add_msdf_texture_rect_region(item: RID, rect: Rect2, texture: RID, src_rect: Rect2, modulate: Color = Color(1, 1, 1, 1), outline_size: int = 0, px_range: float = 1.0, scale: float = 1.0)
    func canvas_item_add_multiline(item: RID, points: PackedVector2Array, colors: PackedColorArray, width: float = -1.0)
    func canvas_item_add_multimesh(item: RID, mesh: RID, texture: RID = RID())
    func canvas_item_add_nine_patch(item: RID, rect: Rect2, source: Rect2, texture: RID, topleft: Vector2, bottomright: Vector2, x_axis_mode: enum NinePatchAxisMode = NINE_PATCH_STRETCH, y_axis_mode: enum NinePatchAxisMode = NINE_PATCH_STRETCH, draw_center: bool = true, modulate: Color = Color(1, 1, 1, 1))
    func canvas_item_add_particles(item: RID, particles: RID, texture: RID)
    func canvas_item_add_polygon(item: RID, points: PackedVector2Array, colors: PackedColorArray, uvs: PackedVector2Array = PackedVector2Array(), texture: RID = RID())
    func canvas_item_add_polyline(item: RID, points: PackedVector2Array, colors: PackedColorArray, width: float = -1.0, antialiased: bool = false)
    func canvas_item_add_primitive(item: RID, points: PackedVector2Array, colors: PackedColorArray, uvs: PackedVector2Array, texture: RID)
    func canvas_item_add_rect(item: RID, rect: Rect2, color: Color)
    func canvas_item_add_set_transform(item: RID, transform: Transform2D)
    func canvas_item_add_texture_rect(item: RID, rect: Rect2, texture: RID, tile: bool = false, modulate: Color = Color(1, 1, 1, 1), transpose: bool = false)
    func canvas_item_add_texture_rect_region(item: RID, rect: Rect2, texture: RID, src_rect: Rect2, modulate: Color = Color(1, 1, 1, 1), transpose: bool = false, clip_uv: bool = true)
    func canvas_item_add_triangle_array(item: RID, indices: PackedInt32Array, points: PackedVector2Array, colors: PackedColorArray, uvs: PackedVector2Array = PackedVector2Array(), bones: PackedInt32Array = PackedInt32Array(), weights: PackedFloat32Array = PackedFloat32Array(), texture: RID = RID(), count: int = -1)
    func canvas_item_clear(item: RID)
    func canvas_item_create() -> RID
    func canvas_item_set_canvas_group_mode(item: RID, mode: enum CanvasGroupMode, clear_margin: float = 5.0, fit_empty: bool = false, fit_margin: float = 0.0, blur_mipmaps: bool = false)
    func canvas_item_set_clip(item: RID, clip: bool)
    func canvas_item_set_copy_to_backbuffer(item: RID, enabled: bool, rect: Rect2)
    func canvas_item_set_custom_rect(item: RID, use_custom_rect: bool, rect: Rect2 = Rect2(0, 0, 0, 0))
    func canvas_item_set_default_texture_filter(item: RID, filter: enum CanvasItemTextureFilter)
    func canvas_item_set_default_texture_repeat(item: RID, repeat: enum CanvasItemTextureRepeat)
    func canvas_item_set_distance_field_mode(item: RID, enabled: bool)
    func canvas_item_set_draw_behind_parent(item: RID, enabled: bool)
    func canvas_item_set_draw_index(item: RID, index: int)
    func canvas_item_set_light_mask(item: RID, mask: int)
    func canvas_item_set_material(item: RID, material: RID)
    func canvas_item_set_modulate(item: RID, color: Color)
    func canvas_item_set_parent(item: RID, parent: RID)
    func canvas_item_set_self_modulate(item: RID, color: Color)
    func canvas_item_set_sort_children_by_y(item: RID, enabled: bool)
    func canvas_item_set_transform(item: RID, transform: Transform2D)
    func canvas_item_set_use_parent_material(item: RID, enabled: bool)
    func canvas_item_set_visibility_layer(item: RID, visibility_layer: int)
    func canvas_item_set_visibility_notifier(item: RID, enable: bool, area: Rect2, enter_callable: Callable, exit_callable: Callable)
    func canvas_item_set_visible(item: RID, visible: bool)
    func canvas_item_set_z_as_relative_to_parent(item: RID, enabled: bool)
    func canvas_item_set_z_index(item: RID, z_index: int)
    func canvas_light_attach_to_canvas(light: RID, canvas: RID)
    func canvas_light_create() -> RID
    func canvas_light_occluder_attach_to_canvas(occluder: RID, canvas: RID)
    func canvas_light_occluder_create() -> RID
    func canvas_light_occluder_set_as_sdf_collision(occluder: RID, enable: bool)
    func canvas_light_occluder_set_enabled(occluder: RID, enabled: bool)
    func canvas_light_occluder_set_light_mask(occluder: RID, mask: int)
    func canvas_light_occluder_set_polygon(occluder: RID, polygon: RID)
    func canvas_light_occluder_set_transform(occluder: RID, transform: Transform2D)
    func canvas_light_set_blend_mode(light: RID, mode: enum CanvasLightBlendMode)
    func canvas_light_set_color(light: RID, color: Color)
    func canvas_light_set_enabled(light: RID, enabled: bool)
    func canvas_light_set_energy(light: RID, energy: float)
    func canvas_light_set_height(light: RID, height: float)
    func canvas_light_set_item_cull_mask(light: RID, mask: int)
    func canvas_light_set_item_shadow_cull_mask(light: RID, mask: int)
    func canvas_light_set_layer_range(light: RID, min_layer: int, max_layer: int)
    func canvas_light_set_mode(light: RID, mode: enum CanvasLightMode)
    func canvas_light_set_shadow_color(light: RID, color: Color)
    func canvas_light_set_shadow_enabled(light: RID, enabled: bool)
    func canvas_light_set_shadow_filter(light: RID, filter: enum CanvasLightShadowFilter)
    func canvas_light_set_shadow_smooth(light: RID, smooth: float)
    func canvas_light_set_texture(light: RID, texture: RID)
    func canvas_light_set_texture_offset(light: RID, offset: Vector2)
    func canvas_light_set_texture_scale(light: RID, scale: float)
    func canvas_light_set_transform(light: RID, transform: Transform2D)
    func canvas_light_set_z_range(light: RID, min_z: int, max_z: int)
    func canvas_occluder_polygon_create() -> RID
    func canvas_occluder_polygon_set_cull_mode(occluder_polygon: RID, mode: enum CanvasOccluderPolygonCullMode)
    func canvas_occluder_polygon_set_shape(occluder_polygon: RID, shape: PackedVector2Array, closed: bool)
    func canvas_set_disable_scale(disable: bool)
    func canvas_set_item_mirroring(canvas: RID, item: RID, mirroring: Vector2)
    func canvas_set_modulate(canvas: RID, color: Color)
    func canvas_set_shadow_texture_size(size: int)
    func canvas_texture_create() -> RID
    func canvas_texture_set_channel(canvas_texture: RID, channel: enum CanvasTextureChannel, texture: RID)
    func canvas_texture_set_shading_parameters(canvas_texture: RID, base_color: Color, shininess: float)
    func canvas_texture_set_texture_filter(canvas_texture: RID, filter: enum CanvasItemTextureFilter)
    func canvas_texture_set_texture_repeat(canvas_texture: RID, repeat: enum CanvasItemTextureRepeat)
    func create_local_rendering_device() -> RenderingDevice
    func decal_create() -> RID
    func decal_set_albedo_mix(decal: RID, albedo_mix: float)
    func decal_set_cull_mask(decal: RID, mask: int)
    func decal_set_distance_fade(decal: RID, enabled: bool, begin: float, length: float)
    func decal_set_emission_energy(decal: RID, energy: float)
    func decal_set_fade(decal: RID, above: float, below: float)
    func decal_set_modulate(decal: RID, color: Color)
    func decal_set_normal_fade(decal: RID, fade: float)
    func decal_set_size(decal: RID, size: Vector3)
    func decal_set_texture(decal: RID, type: enum DecalTexture, texture: RID)
    func decals_set_filter(filter: enum DecalFilter)
    func directional_light_create() -> RID
    func directional_shadow_atlas_set_size(size: int, is_16bits: bool)
    func directional_soft_shadow_filter_set_quality(quality: enum ShadowQuality)
    func environment_bake_panorama(environment: RID, bake_irradiance: bool, size: Vector2i) -> Image
    func environment_create() -> RID
    func environment_glow_set_use_bicubic_upscale(enable: bool)
    func environment_set_adjustment(env: RID, enable: bool, brightness: float, contrast: float, saturation: float, use_1d_color_correction: bool, color_correction: RID)
    func environment_set_ambient_light(env: RID, color: Color, ambient: enum EnvironmentAmbientSource = ENV_AMBIENT_SOURCE_BG, energy: float = 1.0, sky_contibution: float = 0.0, reflection_source: enum EnvironmentReflectionSource = ENV_REFLECTION_SOURCE_BG)
    func environment_set_background(env: RID, bg: enum EnvironmentBG)
    func environment_set_bg_color(env: RID, color: Color)
    func environment_set_bg_energy(env: RID, multiplier: float, exposure_value: float)
    func environment_set_canvas_max_layer(env: RID, max_layer: int)
    func environment_set_fog(env: RID, enable: bool, light_color: Color, light_energy: float, sun_scatter: float, density: float, height: float, height_density: float, aerial_perspective: float, sky_affect: float)
    func environment_set_glow(env: RID, enable: bool, levels: PackedFloat32Array, intensity: float, strength: float, mix: float, bloom_threshold: float, blend_mode: enum EnvironmentGlowBlendMode, hdr_bleed_threshold: float, hdr_bleed_scale: float, hdr_luminance_cap: float, glow_map_strength: float, glow_map: RID)
    func environment_set_sdfgi(env: RID, enable: bool, cascades: int, min_cell_size: float, y_scale: enum EnvironmentSDFGIYScale, use_occlusion: bool, bounce_feedback: float, read_sky: bool, energy: float, normal_bias: float, probe_bias: float)
    func environment_set_sdfgi_frames_to_converge(frames: enum EnvironmentSDFGIFramesToConverge)
    func environment_set_sdfgi_frames_to_update_light(frames: enum EnvironmentSDFGIFramesToUpdateLight)
    func environment_set_sdfgi_ray_count(ray_count: enum EnvironmentSDFGIRayCount)
    func environment_set_sky(env: RID, sky: RID)
    func environment_set_sky_custom_fov(env: RID, scale: float)
    func environment_set_sky_orientation(env: RID, orientation: Basis)
    func environment_set_ssao(env: RID, enable: bool, radius: float, intensity: float, power: float, detail: float, horizon: float, sharpness: float, light_affect: float, ao_channel_affect: float)
    func environment_set_ssao_quality(quality: enum EnvironmentSSAOQuality, half_size: bool, adaptive_target: float, blur_passes: int, fadeout_from: float, fadeout_to: float)
    func environment_set_ssil_quality(quality: enum EnvironmentSSILQuality, half_size: bool, adaptive_target: float, blur_passes: int, fadeout_from: float, fadeout_to: float)
    func environment_set_ssr(env: RID, enable: bool, max_steps: int, fade_in: float, fade_out: float, depth_tolerance: float)
    func environment_set_ssr_roughness_quality(quality: enum EnvironmentSSRRoughnessQuality)
    func environment_set_tonemap(env: RID, tone_mapper: enum EnvironmentToneMapper, exposure: float, white: float)
    func environment_set_volumetric_fog(env: RID, enable: bool, density: float, albedo: Color, emission: Color, emission_energy: float, anisotropy: float, length: float, p_detail_spread: float, gi_inject: float, temporal_reprojection: bool, temporal_reprojection_amount: float, ambient_inject: float, sky_affect: float)
    func environment_set_volumetric_fog_filter_active(active: bool)
    func environment_set_volumetric_fog_volume_size(size: int, depth: int)
    func fog_volume_create() -> RID
    func fog_volume_set_material(fog_volume: RID, material: RID)
    func fog_volume_set_shape(fog_volume: RID, shape: enum FogVolumeShape)
    func fog_volume_set_size(fog_volume: RID, size: Vector3)
    func force_draw(swap_buffers: bool = true, frame_step: float = 0.0)
    func force_sync()
    func free_rid(rid: RID)
    func get_default_clear_color() -> Color
    func get_frame_setup_time_cpu() -> float
    func get_rendering_device() -> RenderingDevice
    func get_rendering_info(info: enum RenderingInfo) -> int
    func get_shader_parameter_list(shader: RID) -> Array[Dictionary]
    func get_test_cube() -> RID
    func get_test_texture() -> RID
    func get_video_adapter_api_version() -> String
    func get_video_adapter_name() -> String
    func get_video_adapter_type() -> enum RenderingDevice.DeviceType
    func get_video_adapter_vendor() -> String
    func get_white_texture() -> RID
    func gi_set_use_half_resolution(half_resolution: bool)
    func global_shader_parameter_add(name: StringName, type: enum GlobalShaderParameterType, default_value: Variant)
    func global_shader_parameter_get(name: StringName) -> Variant
    func global_shader_parameter_get_list() -> Array[StringName]
    func global_shader_parameter_get_type(name: StringName) -> enum GlobalShaderParameterType
    func global_shader_parameter_remove(name: StringName)
    func global_shader_parameter_set(name: StringName, value: Variant)
    func global_shader_parameter_set_override(name: StringName, value: Variant)
    func has_changed() -> bool
    func has_feature(feature: enum Features) -> bool
    func has_os_feature(feature: String) -> bool
    func instance_attach_object_instance_id(instance: RID, id: int)
    func instance_attach_skeleton(instance: RID, skeleton: RID)
    func instance_create() -> RID
    func instance_create2(base: RID, scenario: RID) -> RID
    func instance_geometry_get_shader_parameter(instance: RID, parameter: StringName) -> Variant
    func instance_geometry_get_shader_parameter_default_value(instance: RID, parameter: StringName) -> Variant
    func instance_geometry_get_shader_parameter_list(instance: RID) -> Array[Dictionary]
    func instance_geometry_set_cast_shadows_setting(instance: RID, shadow_casting_setting: enum ShadowCastingSetting)
    func instance_geometry_set_flag(instance: RID, flag: enum InstanceFlags, enabled: bool)
    func instance_geometry_set_lightmap(instance: RID, lightmap: RID, lightmap_uv_scale: Rect2, lightmap_slice: int)
    func instance_geometry_set_lod_bias(instance: RID, lod_bias: float)
    func instance_geometry_set_material_overlay(instance: RID, material: RID)
    func instance_geometry_set_material_override(instance: RID, material: RID)
    func instance_geometry_set_shader_parameter(instance: RID, parameter: StringName, value: Variant)
    func instance_geometry_set_transparency(instance: RID, transparency: float)
    func instance_geometry_set_visibility_range(instance: RID, min: float, max: float, min_margin: float, max_margin: float, fade_mode: enum VisibilityRangeFadeMode)
    func instance_set_base(instance: RID, base: RID)
    func instance_set_blend_shape_weight(instance: RID, shape: int, weight: float)
    func instance_set_custom_aabb(instance: RID, aabb: AABB)
    func instance_set_extra_visibility_margin(instance: RID, margin: float)
    func instance_set_ignore_culling(instance: RID, enabled: bool)
    func instance_set_layer_mask(instance: RID, mask: int)
    func instance_set_pivot_data(instance: RID, sorting_offset: float, use_aabb_center: bool)
    func instance_set_scenario(instance: RID, scenario: RID)
    func instance_set_surface_override_material(instance: RID, surface: int, material: RID)
    func instance_set_transform(instance: RID, transform: Transform3D)
    func instance_set_visibility_parent(instance: RID, parent: RID)
    func instance_set_visible(instance: RID, visible: bool)
    func instances_cull_aabb(aabb: AABB, scenario: RID = RID()) -> PackedInt64Array
    func instances_cull_convex(convex: Array[Plane], scenario: RID = RID()) -> PackedInt64Array
    func instances_cull_ray(from: Vector3, to: Vector3, scenario: RID = RID()) -> PackedInt64Array
    func light_directional_set_blend_splits(light: RID, enable: bool)
    func light_directional_set_shadow_mode(light: RID, mode: enum LightDirectionalShadowMode)
    func light_directional_set_sky_mode(light: RID, mode: enum LightDirectionalSkyMode)
    func light_omni_set_shadow_mode(light: RID, mode: enum LightOmniShadowMode)
    func light_projectors_set_filter(filter: enum LightProjectorFilter)
    func light_set_bake_mode(light: RID, bake_mode: enum LightBakeMode)
    func light_set_color(light: RID, color: Color)
    func light_set_cull_mask(light: RID, mask: int)
    func light_set_distance_fade(decal: RID, enabled: bool, begin: float, shadow: float, length: float)
    func light_set_max_sdfgi_cascade(light: RID, cascade: int)
    func light_set_negative(light: RID, enable: bool)
    func light_set_param(light: RID, param: enum LightParam, value: float)
    func light_set_projector(light: RID, texture: RID)
    func light_set_reverse_cull_face_mode(light: RID, enabled: bool)
    func light_set_shadow(light: RID, enabled: bool)
    func lightmap_create() -> RID
    func lightmap_get_probe_capture_bsp_tree(lightmap: RID) -> PackedInt32Array
    func lightmap_get_probe_capture_points(lightmap: RID) -> PackedVector3Array
    func lightmap_get_probe_capture_sh(lightmap: RID) -> PackedColorArray
    func lightmap_get_probe_capture_tetrahedra(lightmap: RID) -> PackedInt32Array
    func lightmap_set_baked_exposure_normalization(lightmap: RID, baked_exposure: float)
    func lightmap_set_probe_bounds(lightmap: RID, bounds: AABB)
    func lightmap_set_probe_capture_data(lightmap: RID, points: PackedVector3Array, point_sh: PackedColorArray, tetrahedra: PackedInt32Array, bsp_tree: PackedInt32Array)
    func lightmap_set_probe_capture_update_speed(speed: float)
    func lightmap_set_probe_interior(lightmap: RID, interior: bool)
    func lightmap_set_textures(lightmap: RID, light: RID, uses_sh: bool)
    func make_sphere_mesh(latitudes: int, longitudes: int, radius: float) -> RID
    func material_create() -> RID
    func material_get_param(material: RID, parameter: StringName) -> Variant
    func material_set_next_pass(material: RID, next_material: RID)
    func material_set_param(material: RID, parameter: StringName, value: Variant)
    func material_set_render_priority(material: RID, priority: int)
    func material_set_shader(shader_material: RID, shader: RID)
    func mesh_add_surface(mesh: RID, surface: Dictionary)
    func mesh_add_surface_from_arrays(mesh: RID, primitive: enum PrimitiveType, arrays: Array, blend_shapes: Array = [], lods: Dictionary = {}, compress_format: enum ArrayFormat = ARRAY_FLAG_FORMAT_VERSION_1)
    func mesh_clear(mesh: RID)
    func mesh_create() -> RID
    func mesh_create_from_surfaces(surfaces: Array[Dictionary], blend_shape_count: int = 0) -> RID
    func mesh_get_blend_shape_count(mesh: RID) -> int
    func mesh_get_blend_shape_mode(mesh: RID) -> enum BlendShapeMode
    func mesh_get_custom_aabb(mesh: RID) -> AABB
    func mesh_get_surface(mesh: RID, surface: int) -> Dictionary
    func mesh_get_surface_count(mesh: RID) -> int
    func mesh_set_blend_shape_mode(mesh: RID, mode: enum BlendShapeMode)
    func mesh_set_custom_aabb(mesh: RID, aabb: AABB)
    func mesh_set_shadow_mesh(mesh: RID, shadow_mesh: RID)
    func mesh_surface_get_arrays(mesh: RID, surface: int) -> Array
    func mesh_surface_get_blend_shape_arrays(mesh: RID, surface: int) -> Array[Array]
    func mesh_surface_get_format_attribute_stride(format: enum ArrayFormat, vertex_count: int) -> int
    func mesh_surface_get_format_normal_tangent_stride(format: enum ArrayFormat, vertex_count: int) -> int
    func mesh_surface_get_format_offset(format: enum ArrayFormat, vertex_count: int, array_index: int) -> int
    func mesh_surface_get_format_skin_stride(format: enum ArrayFormat, vertex_count: int) -> int
    func mesh_surface_get_format_vertex_stride(format: enum ArrayFormat, vertex_count: int) -> int
    func mesh_surface_get_material(mesh: RID, surface: int) -> RID
    func mesh_surface_set_material(mesh: RID, surface: int, material: RID)
    func mesh_surface_update_attribute_region(mesh: RID, surface: int, offset: int, data: PackedByteArray)
    func mesh_surface_update_skin_region(mesh: RID, surface: int, offset: int, data: PackedByteArray)
    func mesh_surface_update_vertex_region(mesh: RID, surface: int, offset: int, data: PackedByteArray)
    func multimesh_allocate_data(multimesh: RID, instances: int, transform_format: enum MultimeshTransformFormat, color_format: bool = false, custom_data_format: bool = false)
    func multimesh_create() -> RID
    func multimesh_get_aabb(multimesh: RID) -> AABB
    func multimesh_get_buffer(multimesh: RID) -> PackedFloat32Array
    func multimesh_get_instance_count(multimesh: RID) -> int
    func multimesh_get_mesh(multimesh: RID) -> RID
    func multimesh_get_visible_instances(multimesh: RID) -> int
    func multimesh_instance_get_color(multimesh: RID, index: int) -> Color
    func multimesh_instance_get_custom_data(multimesh: RID, index: int) -> Color
    func multimesh_instance_get_transform(multimesh: RID, index: int) -> Transform3D
    func multimesh_instance_get_transform_2d(multimesh: RID, index: int) -> Transform2D
    func multimesh_instance_set_color(multimesh: RID, index: int, color: Color)
    func multimesh_instance_set_custom_data(multimesh: RID, index: int, custom_data: Color)
    func multimesh_instance_set_transform(multimesh: RID, index: int, transform: Transform3D)
    func multimesh_instance_set_transform_2d(multimesh: RID, index: int, transform: Transform2D)
    func multimesh_set_buffer(multimesh: RID, buffer: PackedFloat32Array)
    func multimesh_set_mesh(multimesh: RID, mesh: RID)
    func multimesh_set_visible_instances(multimesh: RID, visible: int)
    func occluder_create() -> RID
    func occluder_set_mesh(occluder: RID, vertices: PackedVector3Array, indices: PackedInt32Array)
    func omni_light_create() -> RID
    func particles_collision_create() -> RID
    func particles_collision_height_field_update(particles_collision: RID)
    func particles_collision_set_attractor_attenuation(particles_collision: RID, curve: float)
    func particles_collision_set_attractor_directionality(particles_collision: RID, amount: float)
    func particles_collision_set_attractor_strength(particles_collision: RID, strength: float)
    func particles_collision_set_box_extents(particles_collision: RID, extents: Vector3)
    func particles_collision_set_collision_type(particles_collision: RID, type: enum ParticlesCollisionType)
    func particles_collision_set_cull_mask(particles_collision: RID, mask: int)
    func particles_collision_set_field_texture(particles_collision: RID, texture: RID)
    func particles_collision_set_height_field_resolution(particles_collision: RID, resolution: enum ParticlesCollisionHeightfieldResolution)
    func particles_collision_set_sphere_radius(particles_collision: RID, radius: float)
    func particles_create() -> RID
    func particles_emit(particles: RID, transform: Transform3D, velocity: Vector3, color: Color, custom: Color, emit_flags: int)
    func particles_get_current_aabb(particles: RID) -> AABB
    func particles_get_emitting(particles: RID) -> bool
    func particles_is_inactive(particles: RID) -> bool
    func particles_request_process(particles: RID)
    func particles_restart(particles: RID)
    func particles_set_amount(particles: RID, amount: int)
    func particles_set_amount_ratio(particles: RID, ratio: float)
    func particles_set_collision_base_size(particles: RID, size: float)
    func particles_set_custom_aabb(particles: RID, aabb: AABB)
    func particles_set_draw_order(particles: RID, order: enum ParticlesDrawOrder)
    func particles_set_draw_pass_mesh(particles: RID, pass: int, mesh: RID)
    func particles_set_draw_passes(particles: RID, count: int)
    func particles_set_emission_transform(particles: RID, transform: Transform3D)
    func particles_set_emitter_velocity(particles: RID, velocity: Vector3)
    func particles_set_emitting(particles: RID, emitting: bool)
    func particles_set_explosiveness_ratio(particles: RID, ratio: float)
    func particles_set_fixed_fps(particles: RID, fps: int)
    func particles_set_fractional_delta(particles: RID, enable: bool)
    func particles_set_interp_to_end(particles: RID, factor: float)
    func particles_set_interpolate(particles: RID, enable: bool)
    func particles_set_lifetime(particles: RID, lifetime: float)
    func particles_set_mode(particles: RID, mode: enum ParticlesMode)
    func particles_set_one_shot(particles: RID, one_shot: bool)
    func particles_set_pre_process_time(particles: RID, time: float)
    func particles_set_process_material(particles: RID, material: RID)
    func particles_set_randomness_ratio(particles: RID, ratio: float)
    func particles_set_speed_scale(particles: RID, scale: float)
    func particles_set_subemitter(particles: RID, subemitter_particles: RID)
    func particles_set_trail_bind_poses(particles: RID, bind_poses: Array[Transform3D])
    func particles_set_trails(particles: RID, enable: bool, length_sec: float)
    func particles_set_transform_align(particles: RID, align: enum ParticlesTransformAlign)
    func particles_set_use_local_coordinates(particles: RID, enable: bool)
    func positional_soft_shadow_filter_set_quality(quality: enum ShadowQuality)
    func reflection_probe_create() -> RID
    func reflection_probe_set_ambient_color(probe: RID, color: Color)
    func reflection_probe_set_ambient_energy(probe: RID, energy: float)
    func reflection_probe_set_ambient_mode(probe: RID, mode: enum ReflectionProbeAmbientMode)
    func reflection_probe_set_as_interior(probe: RID, enable: bool)
    func reflection_probe_set_cull_mask(probe: RID, layers: int)
    func reflection_probe_set_enable_box_projection(probe: RID, enable: bool)
    func reflection_probe_set_enable_shadows(probe: RID, enable: bool)
    func reflection_probe_set_intensity(probe: RID, intensity: float)
    func reflection_probe_set_max_distance(probe: RID, distance: float)
    func reflection_probe_set_mesh_lod_threshold(probe: RID, pixels: float)
    func reflection_probe_set_origin_offset(probe: RID, offset: Vector3)
    func reflection_probe_set_resolution(probe: RID, resolution: int)
    func reflection_probe_set_size(probe: RID, size: Vector3)
    func reflection_probe_set_update_mode(probe: RID, mode: enum ReflectionProbeUpdateMode)
    func request_frame_drawn_callback(callable: Callable)
    func scenario_create() -> RID
    func scenario_set_camera_attributes(scenario: RID, effects: RID)
    func scenario_set_environment(scenario: RID, environment: RID)
    func scenario_set_fallback_environment(scenario: RID, environment: RID)
    func screen_space_roughness_limiter_set_active(enable: bool, amount: float, limit: float)
    func set_boot_image(image: Image, color: Color, scale: bool, use_filter: bool = true)
    func set_debug_generate_wireframes(generate: bool)
    func set_default_clear_color(color: Color)
    func shader_create() -> RID
    func shader_get_code(shader: RID) -> String
    func shader_get_default_texture_parameter(shader: RID, name: StringName, index: int = 0) -> RID
    func shader_get_parameter_default(shader: RID, name: StringName) -> Variant
    func shader_set_code(shader: RID, code: String)
    func shader_set_default_texture_parameter(shader: RID, name: StringName, texture: RID, index: int = 0)
    func shader_set_path_hint(shader: RID, path: String)
    func skeleton_allocate_data(skeleton: RID, bones: int, is_2d_skeleton: bool = false)
    func skeleton_bone_get_transform(skeleton: RID, bone: int) -> Transform3D
    func skeleton_bone_get_transform_2d(skeleton: RID, bone: int) -> Transform2D
    func skeleton_bone_set_transform(skeleton: RID, bone: int, transform: Transform3D)
    func skeleton_bone_set_transform_2d(skeleton: RID, bone: int, transform: Transform2D)
    func skeleton_create() -> RID
    func skeleton_get_bone_count(skeleton: RID) -> int
    func skeleton_set_base_transform_2d(skeleton: RID, base_transform: Transform2D)
    func sky_bake_panorama(sky: RID, energy: float, bake_irradiance: bool, size: Vector2i) -> Image
    func sky_create() -> RID
    func sky_set_material(sky: RID, material: RID)
    func sky_set_mode(sky: RID, mode: enum SkyMode)
    func sky_set_radiance_size(sky: RID, radiance_size: int)
    func spot_light_create() -> RID
    func sub_surface_scattering_set_quality(quality: enum SubSurfaceScatteringQuality)
    func sub_surface_scattering_set_scale(scale: float, depth_scale: float)
    func texture_2d_create(image: Image) -> RID
    func texture_2d_get(texture: RID) -> Image
    func texture_2d_layer_get(texture: RID, layer: int) -> Image
    func texture_2d_layered_create(layers: Array[Image], layered_type: enum TextureLayeredType) -> RID
    func texture_2d_layered_placeholder_create(layered_type: enum TextureLayeredType) -> RID
    func texture_2d_placeholder_create() -> RID
    func texture_2d_update(texture: RID, image: Image, layer: int)
    func texture_3d_create(format: enum Image.Format, width: int, height: int, depth: int, mipmaps: bool, data: Array[Image]) -> RID
    func texture_3d_get(texture: RID) -> Array[Image]
    func texture_3d_placeholder_create() -> RID
    func texture_3d_update(texture: RID, data: Array[Image])
    func texture_get_format(texture: RID) -> enum Image.Format
    func texture_get_native_handle(texture: RID, srgb: bool = false) -> int
    func texture_get_path(texture: RID) -> String
    func texture_get_rd_texture(texture: RID, srgb: bool = false) -> RID
    func texture_proxy_create(base: RID) -> RID
    func texture_proxy_update(texture: RID, proxy_to: RID)
    func texture_rd_create(rd_texture: RID, layer_type: enum TextureLayeredType = TEXTURE_LAYERED_2D_ARRAY) -> RID
    func texture_replace(texture: RID, by_texture: RID)
    func texture_set_force_redraw_if_visible(texture: RID, enable: bool)
    func texture_set_path(texture: RID, path: String)
    func texture_set_size_override(texture: RID, width: int, height: int)
    func viewport_attach_camera(viewport: RID, camera: RID)
    func viewport_attach_canvas(viewport: RID, canvas: RID)
    func viewport_attach_to_screen(viewport: RID, rect: Rect2 = Rect2(0, 0, 0, 0), screen: int = 0)
    func viewport_create() -> RID
    func viewport_get_measured_render_time_cpu(viewport: RID) -> float
    func viewport_get_measured_render_time_gpu(viewport: RID) -> float
    func viewport_get_render_info(viewport: RID, type: enum ViewportRenderInfoType, info: enum ViewportRenderInfo) -> int
    func viewport_get_render_target(viewport: RID) -> RID
    func viewport_get_texture(viewport: RID) -> RID
    func viewport_remove_canvas(viewport: RID, canvas: RID)
    func viewport_set_active(viewport: RID, active: bool)
    func viewport_set_canvas_cull_mask(viewport: RID, canvas_cull_mask: int)
    func viewport_set_canvas_stacking(viewport: RID, canvas: RID, layer: int, sublayer: int)
    func viewport_set_canvas_transform(viewport: RID, canvas: RID, offset: Transform2D)
    func viewport_set_clear_mode(viewport: RID, clear_mode: enum ViewportClearMode)
    func viewport_set_debug_draw(viewport: RID, draw: enum ViewportDebugDraw)
    func viewport_set_default_canvas_item_texture_filter(viewport: RID, filter: enum CanvasItemTextureFilter)
    func viewport_set_default_canvas_item_texture_repeat(viewport: RID, repeat: enum CanvasItemTextureRepeat)
    func viewport_set_disable_2d(viewport: RID, disable: bool)
    func viewport_set_disable_3d(viewport: RID, disable: bool)
    func viewport_set_environment_mode(viewport: RID, mode: enum ViewportEnvironmentMode)
    func viewport_set_fsr_sharpness(viewport: RID, sharpness: float)
    func viewport_set_global_canvas_transform(viewport: RID, transform: Transform2D)
    func viewport_set_measure_render_time(viewport: RID, enable: bool)
    func viewport_set_msaa_2d(viewport: RID, msaa: enum ViewportMSAA)
    func viewport_set_msaa_3d(viewport: RID, msaa: enum ViewportMSAA)
    func viewport_set_occlusion_culling_build_quality(quality: enum ViewportOcclusionCullingBuildQuality)
    func viewport_set_occlusion_rays_per_thread(rays_per_thread: int)
    func viewport_set_parent_viewport(viewport: RID, parent_viewport: RID)
    func viewport_set_positional_shadow_atlas_quadrant_subdivision(viewport: RID, quadrant: int, subdivision: int)
    func viewport_set_positional_shadow_atlas_size(viewport: RID, size: int, use_16_bits: bool = false)
    func viewport_set_render_direct_to_screen(viewport: RID, enabled: bool)
    func viewport_set_scaling_3d_mode(viewport: RID, scaling_3d_mode: enum ViewportScaling3DMode)
    func viewport_set_scaling_3d_scale(viewport: RID, scale: float)
    func viewport_set_scenario(viewport: RID, scenario: RID)
    func viewport_set_screen_space_aa(viewport: RID, mode: enum ViewportScreenSpaceAA)
    func viewport_set_sdf_oversize_and_scale(viewport: RID, oversize: enum ViewportSDFOversize, scale: enum ViewportSDFScale)
    func viewport_set_size(viewport: RID, width: int, height: int)
    func viewport_set_snap_2d_transforms_to_pixel(viewport: RID, enabled: bool)
    func viewport_set_snap_2d_vertices_to_pixel(viewport: RID, enabled: bool)
    func viewport_set_texture_mipmap_bias(viewport: RID, mipmap_bias: float)
    func viewport_set_transparent_background(viewport: RID, enabled: bool)
    func viewport_set_update_mode(viewport: RID, update_mode: enum ViewportUpdateMode)
    func viewport_set_use_debanding(viewport: RID, enable: bool)
    func viewport_set_use_hdr_2d(viewport: RID, enabled: bool)
    func viewport_set_use_occlusion_culling(viewport: RID, enable: bool)
    func viewport_set_use_taa(viewport: RID, enable: bool)
    func viewport_set_use_xr(viewport: RID, use_xr: bool)
    func viewport_set_vrs_mode(viewport: RID, mode: enum ViewportVRSMode)
    func viewport_set_vrs_texture(viewport: RID, texture: RID)
    func visibility_notifier_create() -> RID
    func visibility_notifier_set_aabb(notifier: RID, aabb: AABB)
    func visibility_notifier_set_callbacks(notifier: RID, enter_callable: Callable, exit_callable: Callable)
    func voxel_gi_allocate_data(voxel_gi: RID, to_cell_xform: Transform3D, aabb: AABB, octree_size: Vector3i, octree_cells: PackedByteArray, data_cells: PackedByteArray, distance_field: PackedByteArray, level_counts: PackedInt32Array)
    func voxel_gi_create() -> RID
    func voxel_gi_get_data_cells(voxel_gi: RID) -> PackedByteArray
    func voxel_gi_get_distance_field(voxel_gi: RID) -> PackedByteArray
    func voxel_gi_get_level_counts(voxel_gi: RID) -> PackedInt32Array
    func voxel_gi_get_octree_cells(voxel_gi: RID) -> PackedByteArray
    func voxel_gi_get_octree_size(voxel_gi: RID) -> Vector3i
    func voxel_gi_get_to_cell_xform(voxel_gi: RID) -> Transform3D
    func voxel_gi_set_baked_exposure_normalization(voxel_gi: RID, baked_exposure: float)
    func voxel_gi_set_bias(voxel_gi: RID, bias: float)
    func voxel_gi_set_dynamic_range(voxel_gi: RID, range: float)
    func voxel_gi_set_energy(voxel_gi: RID, energy: float)
    func voxel_gi_set_interior(voxel_gi: RID, enable: bool)
    func voxel_gi_set_normal_bias(voxel_gi: RID, bias: float)
    func voxel_gi_set_propagation(voxel_gi: RID, amount: float)
    func voxel_gi_set_quality(quality: enum VoxelGIQuality)
    func voxel_gi_set_use_two_bounces(voxel_gi: RID, enable: bool)

# Object < ResourceLoader (singleton)

  class ResourceLoader extends Object:

    enum CacheMode {
      CACHE_MODE_IGNORE = 0,
      CACHE_MODE_REUSE = 1,
      CACHE_MODE_REPLACE = 2,
    }

    enum ThreadLoadStatus {
      THREAD_LOAD_INVALID_RESOURCE = 0,
      THREAD_LOAD_IN_PROGRESS = 1,
      THREAD_LOAD_FAILED = 2,
      THREAD_LOAD_LOADED = 3,
    }

    func add_resource_format_loader(format_loader: ResourceFormatLoader, at_front: bool = false)
    func exists(path: String, type_hint: String = "") -> bool
    func get_dependencies(path: String) -> PackedStringArray
    func get_recognized_extensions_for_type(type: String) -> PackedStringArray
    func get_resource_uid(path: String) -> int
    func has_cached(path: String) -> bool
    func load(path: String, type_hint: String = "", cache_mode: enum CacheMode = CACHE_MODE_REUSE) -> Resource
    func load_threaded_get(path: String) -> Resource
    func load_threaded_get_status(path: String, progress: Array = []) -> enum ThreadLoadStatus
    func load_threaded_request(path: String, type_hint: String = "", use_sub_threads: bool = false, cache_mode: enum CacheMode = CACHE_MODE_REUSE) -> enum Error
    func remove_resource_format_loader(format_loader: ResourceFormatLoader)
    func set_abort_on_missing_resources(abort: bool)

# Object < ResourceSaver (singleton)

  class ResourceSaver extends Object:

    enum SaverFlags {
      FLAG_NONE = 0,
      FLAG_RELATIVE_PATHS = 1,
      FLAG_BUNDLE_RESOURCES = 2,
      FLAG_CHANGE_PATH = 4,
      FLAG_OMIT_EDITOR_PROPERTIES = 8,
      FLAG_SAVE_BIG_ENDIAN = 16,
      FLAG_COMPRESS = 32,
      FLAG_REPLACE_SUBRESOURCE_PATHS = 64,
    }

    func add_resource_format_saver(format_saver: ResourceFormatSaver, at_front: bool = false)
    func get_recognized_extensions(type: Resource) -> PackedStringArray
    func remove_resource_format_saver(format_saver: ResourceFormatSaver)
    func save(resource: Resource, path: String = "", flags: enum SaverFlags = FLAG_NONE) -> enum Error

# Object < ResourceUID (singleton)

  class ResourceUID extends Object:

    const INVALID_ID = -1

    func add_id(id: int, path: String)
    func create_id() -> int
    func get_id_path(id: int) -> String
    func has_id(id: int) -> bool
    func id_to_text(id: int) -> String
    func remove_id(id: int)
    func set_id(id: int, path: String)
    func text_to_id(text_id: String) -> int

# Object < ScriptLanguage (abstract)

  class ScriptLanguage extends Object:

    pass 

# Object < TextServerManager (singleton)

  class TextServerManager extends Object:

    signal interface_added(interface_name: StringName)
    signal interface_removed(interface_name: StringName)

    func add_interface(interface: TextServer)
    func find_interface(name: String) -> TextServer
    func get_interface(idx: int) -> TextServer
    func get_interface_count() -> int
    func get_interfaces() -> Array[Dictionary]
    func get_primary_interface() -> TextServer
    func remove_interface(interface: TextServer)
    func set_primary_interface(index: TextServer)

# Object < ThemeDB (singleton)

  class ThemeDB extends Object:

    var fallback_base_scale: float = 1.0
    var fallback_font: Font
    var fallback_font_size: int = 16
    var fallback_icon: Texture2D
    var fallback_stylebox: StyleBox

    signal fallback_changed()

    func get_default_theme() -> Theme
    func get_project_theme() -> Theme

# Object < TileData

  class TileData extends Object:

    var flip_h: bool = false
    var flip_v: bool = false
    var material: Material
    var modulate: Color = Color(1, 1, 1, 1)
    var probability: float = 1.0
    var terrain: int = -1
    var terrain_set: int = -1
    var texture_origin: Vector2i = Vector2i(0, 0)
    var transpose: bool = false
    var y_sort_origin: int = 0
    var z_index: int = 0

    signal changed()

    func add_collision_polygon(layer_id: int)
    func get_collision_polygon_one_way_margin(layer_id: int, polygon_index: int) -> float
    func get_collision_polygon_points(layer_id: int, polygon_index: int) -> PackedVector2Array
    func get_collision_polygons_count(layer_id: int) -> int
    func get_constant_angular_velocity(layer_id: int) -> float
    func get_constant_linear_velocity(layer_id: int) -> Vector2
    func get_custom_data(layer_name: String) -> Variant
    func get_custom_data_by_layer_id(layer_id: int) -> Variant
    func get_navigation_polygon(layer_id: int) -> NavigationPolygon
    func get_occluder(layer_id: int) -> OccluderPolygon2D
    func get_terrain_peering_bit(peering_bit: enum TileSet.CellNeighbor) -> int
    func is_collision_polygon_one_way(layer_id: int, polygon_index: int) -> bool
    func remove_collision_polygon(layer_id: int, polygon_index: int)
    func set_collision_polygon_one_way(layer_id: int, polygon_index: int, one_way: bool)
    func set_collision_polygon_one_way_margin(layer_id: int, polygon_index: int, one_way_margin: float)
    func set_collision_polygon_points(layer_id: int, polygon_index: int, polygon: PackedVector2Array)
    func set_collision_polygons_count(layer_id: int, polygons_count: int)
    func set_constant_angular_velocity(layer_id: int, velocity: float)
    func set_constant_linear_velocity(layer_id: int, velocity: Vector2)
    func set_custom_data(layer_name: String, value: Variant)
    func set_custom_data_by_layer_id(layer_id: int, value: Variant)
    func set_navigation_polygon(layer_id: int, navigation_polygon: NavigationPolygon)
    func set_occluder(layer_id: int, occluder_polygon: OccluderPolygon2D)
    func set_terrain_peering_bit(peering_bit: enum TileSet.CellNeighbor, terrain: int)

# Object < Time (singleton)

  class Time extends Object:

    enum Month {
      MONTH_JANUARY = 1,
      MONTH_FEBRUARY = 2,
      MONTH_MARCH = 3,
      MONTH_APRIL = 4,
      MONTH_MAY = 5,
      MONTH_JUNE = 6,
      MONTH_JULY = 7,
      MONTH_AUGUST = 8,
      MONTH_SEPTEMBER = 9,
      MONTH_OCTOBER = 10,
      MONTH_NOVEMBER = 11,
      MONTH_DECEMBER = 12,
    }

    enum Weekday {
      WEEKDAY_SUNDAY = 0,
      WEEKDAY_MONDAY = 1,
      WEEKDAY_TUESDAY = 2,
      WEEKDAY_WEDNESDAY = 3,
      WEEKDAY_THURSDAY = 4,
      WEEKDAY_FRIDAY = 5,
      WEEKDAY_SATURDAY = 6,
    }

    func get_date_dict_from_system(utc: bool = false) -> Dictionary
    func get_date_dict_from_unix_time(unix_time_val: int) -> Dictionary
    func get_date_string_from_system(utc: bool = false) -> String
    func get_date_string_from_unix_time(unix_time_val: int) -> String
    func get_datetime_dict_from_datetime_string(datetime: String, weekday: bool) -> Dictionary
    func get_datetime_dict_from_system(utc: bool = false) -> Dictionary
    func get_datetime_dict_from_unix_time(unix_time_val: int) -> Dictionary
    func get_datetime_string_from_datetime_dict(datetime: Dictionary, use_space: bool) -> String
    func get_datetime_string_from_system(utc: bool = false, use_space: bool = false) -> String
    func get_datetime_string_from_unix_time(unix_time_val: int, use_space: bool = false) -> String
    func get_offset_string_from_offset_minutes(offset_minutes: int) -> String
    func get_ticks_msec() -> int
    func get_ticks_usec() -> int
    func get_time_dict_from_system(utc: bool = false) -> Dictionary
    func get_time_dict_from_unix_time(unix_time_val: int) -> Dictionary
    func get_time_string_from_system(utc: bool = false) -> String
    func get_time_string_from_unix_time(unix_time_val: int) -> String
    func get_time_zone_from_system() -> Dictionary
    func get_unix_time_from_datetime_dict(datetime: Dictionary) -> int
    func get_unix_time_from_datetime_string(datetime: String) -> int
    func get_unix_time_from_system() -> float

# Object < TranslationServer (singleton)

  class TranslationServer extends Object:

    var pseudolocalization_enabled: bool = false

    func add_translation(translation: Translation)
    func clear()
    func compare_locales(locale_a: String, locale_b: String) -> int
    func get_all_countries() -> PackedStringArray
    func get_all_languages() -> PackedStringArray
    func get_all_scripts() -> PackedStringArray
    func get_country_name(country: String) -> String
    func get_language_name(language: String) -> String
    func get_loaded_locales() -> PackedStringArray
    func get_locale() -> String
    func get_locale_name(locale: String) -> String
    func get_script_name(script: String) -> String
    func get_tool_locale() -> String
    func get_translation_object(locale: String) -> Translation
    func pseudolocalize(message: StringName) -> StringName
    func reload_pseudolocalization()
    func remove_translation(translation: Translation)
    func set_locale(locale: String)
    func standardize_locale(locale: String) -> String
    func translate(message: StringName, context: StringName = "") -> StringName
    func translate_plural(message: StringName, plural_message: StringName, n: int, context: StringName = "") -> StringName

# Object < TreeItem (abstract)

  class TreeItem extends Object:

    enum TreeCellMode {
      CELL_MODE_STRING = 0,
      CELL_MODE_CHECK = 1,
      CELL_MODE_RANGE = 2,
      CELL_MODE_ICON = 3,
      CELL_MODE_CUSTOM = 4,
    }

    var collapsed: bool
    var custom_minimum_height: int
    var disable_folding: bool
    var visible: bool

    func add_button(column: int, button: Texture2D, id: int = -1, disabled: bool = false, tooltip_text: String = "")
    func add_child(child: TreeItem)
    func call_recursive(method: StringName, ...)
    func clear_custom_bg_color(column: int)
    func clear_custom_color(column: int)
    func create_child(index: int = -1) -> TreeItem
    func deselect(column: int)
    func erase_button(column: int, button_index: int)
    func get_autowrap_mode(column: int) -> enum TextServer.AutowrapMode
    func get_button(column: int, button_index: int) -> Texture2D
    func get_button_by_id(column: int, id: int) -> int
    func get_button_count(column: int) -> int
    func get_button_id(column: int, button_index: int) -> int
    func get_button_tooltip_text(column: int, button_index: int) -> String
    func get_cell_mode(column: int) -> enum TreeCellMode
    func get_child(index: int) -> TreeItem
    func get_child_count() -> int
    func get_children() -> Array[TreeItem]
    func get_custom_bg_color(column: int) -> Color
    func get_custom_color(column: int) -> Color
    func get_custom_font(column: int) -> Font
    func get_custom_font_size(column: int) -> int
    func get_expand_right(column: int) -> bool
    func get_first_child() -> TreeItem
    func get_icon(column: int) -> Texture2D
    func get_icon_max_width(column: int) -> int
    func get_icon_modulate(column: int) -> Color
    func get_icon_region(column: int) -> Rect2
    func get_index() -> int
    func get_language(column: int) -> String
    func get_metadata(column: int) -> Variant
    func get_next() -> TreeItem
    func get_next_in_tree(wrap: bool = false) -> TreeItem
    func get_next_visible(wrap: bool = false) -> TreeItem
    func get_parent() -> TreeItem
    func get_prev() -> TreeItem
    func get_prev_in_tree(wrap: bool = false) -> TreeItem
    func get_prev_visible(wrap: bool = false) -> TreeItem
    func get_range(column: int) -> float
    func get_range_config(column: int) -> Dictionary
    func get_structured_text_bidi_override(column: int) -> enum TextServer.StructuredTextParser
    func get_structured_text_bidi_override_options(column: int) -> Array
    func get_suffix(column: int) -> String
    func get_text(column: int) -> String
    func get_text_alignment(column: int) -> enum HorizontalAlignment
    func get_text_direction(column: int) -> enum Control.TextDirection
    func get_text_overrun_behavior(column: int) -> enum TextServer.OverrunBehavior
    func get_tooltip_text(column: int) -> String
    func get_tree() -> Tree
    func is_any_collapsed(only_visible: bool = false) -> bool
    func is_button_disabled(column: int, button_index: int) -> bool
    func is_checked(column: int) -> bool
    func is_custom_set_as_button(column: int) -> bool
    func is_edit_multiline(column: int) -> bool
    func is_editable(column: int) -> bool
    func is_indeterminate(column: int) -> bool
    func is_selectable(column: int) -> bool
    func is_selected(column: int) -> bool
    func move_after(item: TreeItem)
    func move_before(item: TreeItem)
    func propagate_check(column: int, emit_signal: bool = true)
    func remove_child(child: TreeItem)
    func select(column: int)
    func set_autowrap_mode(column: int, autowrap_mode: enum TextServer.AutowrapMode)
    func set_button(column: int, button_index: int, button: Texture2D)
    func set_button_color(column: int, button_index: int, color: Color)
    func set_button_disabled(column: int, button_index: int, disabled: bool)
    func set_button_tooltip_text(column: int, button_index: int, tooltip: String)
    func set_cell_mode(column: int, mode: enum TreeCellMode)
    func set_checked(column: int, checked: bool)
    func set_collapsed_recursive(enable: bool)
    func set_custom_as_button(column: int, enable: bool)
    func set_custom_bg_color(column: int, color: Color, just_outline: bool = false)
    func set_custom_color(column: int, color: Color)
    func set_custom_draw(column: int, object: Object, callback: StringName)
    func set_custom_font(column: int, font: Font)
    func set_custom_font_size(column: int, font_size: int)
    func set_edit_multiline(column: int, multiline: bool)
    func set_editable(column: int, enabled: bool)
    func set_expand_right(column: int, enable: bool)
    func set_icon(column: int, texture: Texture2D)
    func set_icon_max_width(column: int, width: int)
    func set_icon_modulate(column: int, modulate: Color)
    func set_icon_region(column: int, region: Rect2)
    func set_indeterminate(column: int, indeterminate: bool)
    func set_language(column: int, language: String)
    func set_metadata(column: int, meta: Variant)
    func set_range(column: int, value: float)
    func set_range_config(column: int, min: float, max: float, step: float, expr: bool = false)
    func set_selectable(column: int, selectable: bool)
    func set_structured_text_bidi_override(column: int, parser: enum TextServer.StructuredTextParser)
    func set_structured_text_bidi_override_options(column: int, args: Array)
    func set_suffix(column: int, text: String)
    func set_text(column: int, text: String)
    func set_text_alignment(column: int, text_alignment: enum HorizontalAlignment)
    func set_text_direction(column: int, direction: enum Control.TextDirection)
    func set_text_overrun_behavior(column: int, overrun_behavior: enum TextServer.OverrunBehavior)
    func set_tooltip_text(column: int, tooltip: String)
    func uncollapse_tree()

# Object < UndoRedo

  class UndoRedo extends Object:

    enum MergeMode {
      MERGE_DISABLE = 0,
      MERGE_ENDS = 1,
      MERGE_ALL = 2,
    }

    signal version_changed()

    func add_do_method(callable: Callable)
    func add_do_property(object: Object, property: StringName, value: Variant)
    func add_do_reference(object: Object)
    func add_undo_method(callable: Callable)
    func add_undo_property(object: Object, property: StringName, value: Variant)
    func add_undo_reference(object: Object)
    func clear_history(increase_version: bool = true)
    func commit_action(execute: bool = true)
    func create_action(name: String, merge_mode: enum MergeMode = MERGE_DISABLE, backward_undo_ops: bool = false)
    func end_force_keep_in_merge_ends()
    func get_action_name(id: int) -> String
    func get_current_action() -> int
    func get_current_action_name() -> String
    func get_history_count() -> int
    func get_version() -> int
    func has_redo() -> bool
    func has_undo() -> bool
    func is_committing_action() -> bool
    func redo() -> bool
    func start_force_keep_in_merge_ends()
    func undo() -> bool

# Object < WorkerThreadPool (singleton)

  class WorkerThreadPool extends Object:

    func add_group_task(action: Callable, elements: int, tasks_needed: int = -1, high_priority: bool = false, description: String = "") -> int
    func add_task(action: Callable, high_priority: bool = false, description: String = "") -> int
    func get_group_processed_element_count(group_id: int) -> int
    func is_group_task_completed(group_id: int) -> bool
    func is_task_completed(task_id: int) -> bool
    func wait_for_group_task_completion(group_id: int)
    func wait_for_task_completion(task_id: int) -> enum Error

# Object < XRServer (singleton)

  class XRServer extends Object:

    enum RotationMode {
      RESET_FULL_ROTATION = 0,
      RESET_BUT_KEEP_TILT = 1,
      DONT_RESET_ROTATION = 2,
    }

    enum TrackerType {
      TRACKER_HEAD = 1,
      TRACKER_CONTROLLER = 2,
      TRACKER_BASESTATION = 4,
      TRACKER_ANCHOR = 8,
      TRACKER_ANY_KNOWN = 127,
      TRACKER_UNKNOWN = 128,
      TRACKER_ANY = 255,
    }

    var primary_interface: XRInterface
    var world_origin: Transform3D = Transform3D(Vector3(1, 0, 0), Vector3(0, 1, 0), Vector3(0, 0, 1), Vector3(0, 0, 0))
    var world_scale: float = 1.0

    signal interface_added(interface_name: StringName)
    signal interface_removed(interface_name: StringName)
    signal tracker_added(tracker_name: StringName, type: int)
    signal tracker_removed(tracker_name: StringName, type: int)
    signal tracker_updated(tracker_name: StringName, type: int)

    func add_interface(interface: XRInterface)
    func add_tracker(tracker: XRPositionalTracker)
    func center_on_hmd(rotation_mode: enum RotationMode, keep_height: bool)
    func find_interface(name: String) -> XRInterface
    func get_hmd_transform() -> Transform3D
    func get_interface(idx: int) -> XRInterface
    func get_interface_count() -> int
    func get_interfaces() -> Array[Dictionary]
    func get_reference_frame() -> Transform3D
    func get_tracker(tracker_name: StringName) -> XRPositionalTracker
    func get_trackers(tracker_types: int) -> Dictionary
    func remove_interface(interface: XRInterface)
    func remove_tracker(tracker: XRPositionalTracker)